我是nodejs的初学者。当我在下面键入以下代码时,将发生此类TypeError [ERR_INVALID_CALLBACK]的代码错误:回调必须是一个函数
var fs = require('fs');
fs.readFile('readMe.txt', 'utf8', function (err, data) {
fs.writeFile('writeMe.txt', data);
});
答案 0 :(得分:17)
Fs.writeFile()需要( 文件,数据[,选项]和回调)参数,因此您的代码将如下所示:
var fs = require('fs');
fs.readFile('readMe.txt', 'utf8', function (err, data) {
fs.writeFile('writeMe.txt', data, function(err, result) {
if(err) console.log('error', err);
});
});
答案 1 :(得分:4)
从节点10开始,必须在fs.writefile()
上传递回调
Node.js记录了更改的目的:https://github.com/nodejs/node/blob/master/doc/api/deprecations.md#dep0013-fs-asynchronous-function-without-callback
您可以像这样fs.writeFile('writeMe.txt', data, () => {})
答案 2 :(得分:3)
fs.writeFile(...)
需要第三个(或第四个)参数,该参数是在操作完成时要调用的回调函数。您应该提供回调函数或使用fs.writeFileSync(...)
有关更多信息,请参见node fs docs。
答案 3 :(得分:2)
您也这样使用
var file2 = await fs.readFileSync("./Public/n2.jpeg")
答案 4 :(得分:0)
当我执行以下操作时,这个错误使我感到震惊;
var hello = myfunction( callme() );
而不是
var hello = myfunction( callme );
答案 5 :(得分:0)
var fs = require('fs');
fs.readFile('readme.txt', 'utf8', function(err, data) {
fs.writeFile('writemeee.txt', data, function(err, result) {
if (err) console.log('error', err);
});
});
答案 6 :(得分:0)
您只需使用同步功能
var fs = require('fs');
fs.readFileSync('readMe.txt', 'utf8', function (err, data) {
fs.writeFileSync('writeMe.txt', data);
});
或者使用回调函数