我最初使用的是节点v4.4.5并且运行nodemon似乎有效。一旦我安装了新版本,一切都破了。我不太清楚为什么我会收到此错误,因为我只是想让一个简单的节点运行。
继承守则。
var http = require('http');
var fs = require('fs');
var server = http.createServer(function (request, response){
console.log('client request URL: ', request.url);
if(request.url === '/') {
fs.readFile('index.html', 'utf8', function (errors, contents){
response.writeHead(200, {'Content-Type': 'text/html'});
response.write(contents);
response.end();
});
}
else {
response.writeHead(404);
response.end('File not found!!!');
}
});
server.listen(8000);
console.log("Running in localhost at port 8000");
答案 0 :(得分:0)
我在Node版本上运行了你的代码:V8.2.1。 页面呈现没有任何错误。 安装最新的稳定版Node.js:V6.11.2
答案 1 :(得分:0)
在不知道错误的情况下,这是非常困难的。您使用的库非常基础,您所使用的功能在您引用的版本之间不应该(在界面方面)不同。
我建议你检查一下阅读操作。 fs.readFile
的回调有一个尚未检查过的errors
字段。如果发生错误,contents
可能仍未定义,因此response.write
方法引发错误,需要缓冲区或字符串作为参数。
您可以尝试:
response.write(String(contents));
并且您的页面应该显示一个简单的“未定义”字符串。如果是这种情况,那么下一步就是要理解为什么“index.html”无法打开。
您可以使用节点调试器逐行运行代码:
node inspect script.js
您应该将debugger;
插入您希望逐行检查器停止的位置。查看文档here。