Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 第一个参数的类型必须为string或buffer或uint8array的实例。接收未定义_Javascript_Node.js_Web - Fatal编程技术网

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?你能提供样本输入吗?好的,完整的项目在这里