这是我在这里的第一篇文章,因此如果出现错误,我深表歉意。
在Node js中尝试使用const fs = require(“ fs”)时遇到问题。 Visual Studio代码IDE无法识别它是已分配的,并且当我尝试使用fs.writeFile时出现错误。
我已经尝试过在线查找,但是找不到任何解决方案。我是编码新手,不胜感激。
const http = require("http");
const fs = require("fs");
const server = http.createServer((req, res) => {
const url= req.url;
const method = req.method;
if (url === "/") {
res.write("<html>");
res.write("<head><title>Enter Message</title></head>");
res.write("<body><form action='/message' method='POST'><input type='text' name='message'><button type='submit'>Enter</button></input></form>");
res.write("</html>");
return res.end();
}
if (url === "/message" && method === "POST") {
fs.writeFile("message.txt", "DUMMY");
}
res.setHeader("content-type", "text/html");
res.write("<html>");
res.write("<head><title>My First Page</title></head>");
res.write("<body><h1>Hello From My Node Js Server!!!!</h1></body>");
res.write("<html>");
});
我希望在运行程序时将伪文本写入文件,但是我只会遇到以下错误。
TypeError [ERR_INVALID_CALLBACK]: Callback must be a function
at maybeCallback (fs.js:128:9)
at Object.writeFile (fs.js:1158:14)
at Server.http.createServer (C:\Users\garry\Documents\Eloquent Javascript\Practice\practice.js:15:8)
at Server.emit (events.js:189:13)
at parserOnIncoming (_http_server.js:676:12)
at HTTPParser.parserOnHeadersComplete (_http_common.js:109:17)
答案 0 :(得分:0)
根据Node.js文档,您必须向fs.writeFile
提供回调函数。
参考:https://nodejs.org/api/fs.html#fs_fs_writefile_file_data_options_callback
答案 1 :(得分:0)
writeFile
的方法签名为fs.writeFile(file, data[, options], callback)
,表示它需要4个参数,一个是可选的; options
,而您的最后一个参数应为callback function
。回调的签名为callback(err)
,这意味着如果函数writeFile
在编写时遇到错误,则传递给您的回调函数应使用第一个参数来处理错误。如果没有错误,则err
将是null
文档中的示例用法:
fs.writeFile('message.txt', data, (err) => {
// check if there is error
if (err) throw err;
console.log('The file has been saved!');
});
在您的通话中,该方法缺少最后一个callback function
参数
fs.writeFile("message.txt", "DUMMY" // , missing);
可以传入自定义函数,例如:
function writeSuccess(err) {
// check if there is error
if (err) console.error(err);
else console.log('write success');
}
fs.writeFile("message.txt", "DUMMY", writeSuccess);
在MDN上了解有关callback
的更多信息