簡體   English   中英

第一個參數必須是字符串類型或緩沖區或 uint8array 的實例。 收到未定義

[英]First argument must be of type string or an instance of buffer or uint8array. Received undefined

我制作了這段代碼,在我嘗試了一切之后,它一直給我這個錯誤。

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;
}

您的 index.js 文件 [https://github.com/notJudahRR/Firwe/blob/main/index.js] 將路徑設置為 object:

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 在每個 object 屬性值中循環,然后獲取index.html以獲取要渲染的文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM