nodejs初学小白请教大佬们

m0_46679975 2020-09-27 07:21:14
我想实现的效果是在网页上将本地的一个文件夹展示出来,并且文件夹里面的子文件夹点击能继续跳转到里面,我的想法是用递归函数来实现,但在37行的传参数传不了,是不是我的方法是行不通的,希望大佬们解答一下,谢谢了!
...全文
37297 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
m0_46679975 2020-10-14
  • 打赏
  • 举报
回复
大佬,是不是js的search方法执行是在浏览器进行,没经过node环境,所以我在点击子文件执行就会报找不到node环境下的search函数啊?那如果要在node环境下调用search应该怎么实现呢?初学小白,希望大佬指点一下,感激不已!
baycoder1 2020-10-14
  • 打赏
  • 举报
回复
3 个问题: 1)line 37,html 标签内部需要用双引号 2)同样 line 37,nextUrl 被作为字符串了 3)javascript:search('xxx') 执行上下文的是客户端也就是浏览器环境,不是 nodejs 环境,所以会报 search 方法找不到的错误 解决: 1)和 2):res.write("<a href=\"javascript:search('" + nextUrl + "')\">" + files[i] +"</a >"); 3)需要你自己再想想
m0_46679975 2020-10-09
  • 打赏
  • 举报
回复
引用 2 楼 当作看不见的回复:
发代码请不要发送图片,这种无法直接运行,(没有多少人愿意全程敲一遍),也没有多少人可以通过只观看代码就找到问题,当问题越复杂,难度是指数上升的.


var http=require('http');
var path=require('path');
var url=require('url');
var fs=require('fs');

const hostname='localhost';
const port=3010;
var documentRoot='D:/wamp';
var server=http.createServer();

server.listen(port,hostname,function(){
    console.log(`server is runing at http://${hostname}:${port}`);
});

var handRequest=function(req,res){
    var urlname=req.url;
    let file=documentRoot+urlname;
    if(urlname=='/'){
        fs.readdir(file,function(err,files){
            if(err){
                res.writeHeader(404,{
                    'content-type':'text/html;charset="utf-8"'
                });
                res.write("文件读取错误");
                res.end(); 
            }
            else{
                res.writeHeader(200,{
                    'content-type':'text/html;charset="utf-8"'
                });
                res.write("以下为服务器提供的文件<br>");
                function search(type){
                    for(let i=0;i<files.length;i++){
                        let files_status=fs.statSync(type+files[i]);
                        if(files_status.isDirectory()){
                             nextUrl=`${file}${files[i]}`;
                            res.write("<a href='javascript:search('nextUrl')'>" + files[i] +"</a >");
                        }
                        else{
                            res.write(files[i])
                        }
                        res.write("<br>")
                    }
                };
                search(file);
                res.end();  
            }
        })
    }
    else{
        res.writeHeader(404,{
            'content-type':'text/html;charset="utf-8"'
        });
        res.write("不可以访问");
        res.end();
    }
};
server.on('request',handRequest);

m0_46679975 2020-10-09
  • 打赏
  • 举报
回复
引用 2 楼 当作看不见的回复:
发代码请不要发送图片,这种无法直接运行,(没有多少人愿意全程敲一遍),也没有多少人可以通过只观看代码就找到问题,当问题越复杂,难度是指数上升的.
啊,不好意思,大佬,我重新发一下源码,大佬能不能帮忙看看
「已注销」 2020-09-30
  • 打赏
  • 举报
回复
nextUrl变量没引用成功
当作看不见 2020-09-30
  • 打赏
  • 举报
回复
发代码请不要发送图片,这种无法直接运行,(没有多少人愿意全程敲一遍),也没有多少人可以通过只观看代码就找到问题,当问题越复杂,难度是指数上升的.

87,918

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧