Node.js TypeError:无法读取属性';长度';未定义的。在节点js中

Node.js TypeError:无法读取属性';长度';未定义的。在节点js中,node.js,Node.js,TypeError:无法读取未定义的属性“length” at/Users/junggri/Desktop/web2 nodejs/syntax/main.js:15:36 在FSReqWrap.args[as oncomplete](fs.js:140:20) 这是我在NodeJS中的代码 var http = require('http'); var fs = require('fs'); var url = require('url'); var app = http.createServ

TypeError:无法读取未定义的属性“length” at/Users/junggri/Desktop/web2 nodejs/syntax/main.js:15:36 在FSReqWrap.args[as oncomplete](fs.js:140:20)

这是我在NodeJS中的代码

var http = require('http');
var fs = require('fs');
var url = require('url');
var app = http.createServer(function(request,response){
var _url = request.url;
var queryData = url.parse(_url, true).query;
var pathname = url.parse(_url, true).pathname;
if(pathname === '/'){
if(queryData.id === undefined){
fs.readdir('./data', function(error, filelist){
var title = 'Welcome';
var description = 'Hello, Node.js';
var list = '<ul>';
for(var i =0; i<filelist.length; i++){
list = list + `<li><a href="/?id=${filelist[i]}">${filelist[i]}</a></li>`;}
list = list+'</ul>';
var template = `
<!doctype html>
<html>
<head>
<title>WEB1 - ${title}</title>
<meta charset="utf-8">
</head>
<body>
<h1><a href="/">WEB</a></h1>
${list}
<h2>${title}</h2>
<p>${description}</p>
</body>
</html>
`;
response.writeHead(200);
response.end(template);
})
var http=require('http');
var fs=需要('fs');
var url=require('url');
var app=http.createServer(函数(请求、响应){
var_url=request.url;
var queryData=url.parse(_-url,true).query;
var pathname=url.parse(_url,true).pathname;
如果(路径名=='/')){
if(queryData.id==未定义){
fs.readdir('./data',函数(错误,文件列表){
var title=‘欢迎’;
var description='Hello,Node.js';
变量列表=“
    ”;
    对于(var i=0;i读取目录时似乎有问题。如前面的回答所指出的,请检查回调中的错误参数。它将为您提供必要的详细信息。

    您可以尝试以下方法:

    var filelist = fs.readdirSync('./data/');
    

    不要忽略
    错误
    参数-始终先检查它,这就是为什么它是第一个参数。我认为问题是由于异步操作造成的。请使用fs.readdirSync()方法尝试一下。我希望它能解决问题。