Javascript 第一个参数的类型必须为string或buffer或uint8array的实例。接收未定义
我编写了这段代码,在我尝试了所有东西之后,它一直给我这个错误Javascript 第一个参数的类型必须为string或buffer或uint8array的实例。接收未定义,javascript,node.js,web,Javascript,Node.js,Web,我编写了这段代码,在我尝试了所有东西之后,它一直给我这个错误 First argument must be of type string or an instance of buffer or uint8array. Received undefined 请原谅我是Node.js的新手,但我真的不知道哪里出了问题。谢谢你的帮助 函数createServer(obj){ var i; obj.port=(obj.port | | 8080); obj.path=(obj.path | |“/”)
First argument must be of type string or an instance of buffer or uint8array. Received undefined
请原谅我是Node.js的新手,但我真的不知道哪里出了问题。谢谢你的帮助
函数createServer(obj){
var i;
obj.port=(obj.port | | 8080);
obj.path=(obj.path | |“/”);
http.createServer((req,res)=>{
res.writeHead(200,{'Content-Type':'text/html'});
用于(对象路径中的i){
fs.readFile(i,“utf-8”,(错误,数据)=>{
如果(错误){
控制台日志(err);
}
res.write(数据);
res.end();
})
}
}).监听(目标端口);
返回obj;
}
您的index.js文件[https://github.com/notJudahRR/Firwe/blob/main/index.js]将路径设置为对象:
const firwe = require("./src/index.js");
let server = firwe({
port: 8080,
path: {
"/": "index.html"
},
});
server.initServer();
然后,在server.js中[https://github.com/notJudahRR/Firwe/blob/main/src/server.js]您必须适当处理:
const http = require("http");
const fs = require("fs");
const type = require("./type.js");
function createServer(obj) {
var i;
obj.port = obj.port || 8080;
obj.path = obj.path || {
"/": "index.html",
};
http
.createServer((req, res) => {
res.writeHead(200, { "Content-Type": "text/html" });
Object.values(obj.path).forEach((v) => {
fs.readFile(v, "utf-8", (err, data) => {
if (err) {
console.log(err);
}
res.write(data);
res.end();
});
});
})
.listen(obj.port);
return obj;
}
module.exports = createServer;
Object.values在每个对象属性值中循环,然后获得index.html以获取要渲染的文件。哪一行导致了这种情况?是不是
fs.readFile
?什么是obj?你能提供样本输入吗?好的,完整的项目在这里