我编写了这段代码,在我尝试了所有之后,它一直给我这个错误。
First argument must be of type string or an instance of buffer or uint8array. Received undefined
对不起,我是 Node.js 的新手,但我真的不知道我哪里出错了。感谢您的帮助。
function createServer(obj){
var i;
obj.port = (obj.port || 8080);
obj.path = (obj.path || "/");
http.createServer((req, res) => {
res.writeHead(200, {'Content-Type': 'text/html'});
for(i in obj.path){
fs.readFile(i, "utf-8", (err, data) => {
if(err){
console.log(err);
}
res.write(data);
res.end();
})
}
}).listen(obj.port);
return obj;
}
答案 0 :(得分:0)
您的 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 以获取要呈现的文件。