TypeError:无法读取Node.js中未定义的属性“length”

时间:2018-06-06 10:39:50

标签: javascript node.js http

我正在尝试创建一个服务器,但它在控制台中给我一个错误

$ node server1185
Server listening at 1185

C:\Users\Bharat\Desktop\Nodejs\server1185.js:9

res.writeHead(200,{'Content-Type':'text/html', 'Content-Length': data.length
                                                                  ^

TypeError: Cannot read property 'length' of undefined
    at ReadFileContext.callback (C:\Users\Bharat\Desktop\Nodejs\server1185.js:9:
71)
    at FSReqWrap.readFileAfterOpen [as oncomplete] (fs.js:420:13)

我的Node.js代码如下

var http = require('http');
var fs = require('fs');
var server = http.createServer(function(req, res){
displayForm(res);
});

function displayForm(res){
fs.readFile('form.html', function(err,data){
res.writeHead(200,{'Content-Type':'text/html', 'Content-Length': data.length
});
res.write(data);
res.end();
});
}
server.listen(1185);
console.log('Server listening at 1185');
它在data.length中抛出一个错误,我们将不胜感激。

1 个答案:

答案 0 :(得分:0)

您必须正确处理err对象 记录errdata对象。你会理解这个问题

 if(err)
    {
        console.log(err)
    }
    else
  {
   res.writeHead(200,{'Content-Type':'text/html', 'Content-Length': data.length
 }