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

How avoid first argument must be a string or Buffer node js

本文关键字:字符串 Buffer 节点 js 何避免 第一个 参数      更新时间:2023-09-26

我尝试在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);
});

当我去url http://localhost:8000时,我得到了错误first argument must be a string or Buffer node js。有人能帮我吗?

原因是您的readFile()失败,err设置(html可能是undefined)。在这种情况下,您应该填写if (err) {}块来做一些有用的事情。

另外,最可能的错误原因是在文件名字符串中没有转义反斜杠。所以你需要:

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

转义路径:

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