如何避免第一个参数必须是字符串或缓冲节点js

时间:2015-08-24 14:09:01

标签: javascript node.js

我尝试在node.js的页面中放置一个html,这是代码:

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

fs.readFile('C:\Users\Eventi\Desktop\Node.js\Progetti\ProveNodeJS\NodeJSProve\home.html', function (err, html) {
    if (err) {

    }       
    http.createServer(function(request, response) {  
        response.writeHeader(200, {"Content-Type": "text/html"});  
        response.write(html);  
        response.end();  
    }).listen(8000);
});

当我访问网址http://localhost:8000时,我收到错误first argument must be a string or Buffer node js。有人可以帮帮我吗?

2 个答案:

答案 0 :(得分:2)

原因是您的readFile()失败并设置了errhtml可能是undefined)。在这种情况下,您应填写if (err) {}块以执行有用的操作。

此外,出现错误的最可能原因是反斜杠未在文字文件名字符串中进行转义。所以相反,你需要:

'C:\\Users\\Eventi\\Desktop\\Node.js\\Progetti\\ProveNodeJS\\NodeJSProve\\home.html'

答案 1 :(得分:1)

逃离你的道路:

fs.readFile('C:\\Users\\Eventi\\Desktop\\Node.js\\Progetti\\ProveNodeJS\\NodeJSProve\\home.html', function (err, html) {

再试一次。