Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.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
Node.js 如何修复此错误类型错误[ERR\u INVALID\u CALLBACK]:回调必须是函数_Node.js_Callback - Fatal编程技术网

Node.js 如何修复此错误类型错误[ERR\u INVALID\u CALLBACK]:回调必须是函数

Node.js 如何修复此错误类型错误[ERR\u INVALID\u CALLBACK]:回调必须是函数,node.js,callback,Node.js,Callback,我是个初学者。当我键入以下内容时,代码错误如下所示: TypeError[ERR\u INVALID\u CALLBACK]:回调必须是函数 fs.writeFile(…)需要第三个(或第四个)参数,该参数是在操作完成时调用的回调函数。您应该提供回调函数或使用fs.writeFileSync(…) 有关更多信息,请参见。Fs.writeFile(),请参见文档( 文件、数据[、选项]和回调)参数,因此您的代码如下所示: var fs = require('fs'); fs.readFile(

我是个初学者。当我键入以下内容时,代码错误如下所示:

TypeError[ERR\u INVALID\u CALLBACK]:回调必须是函数

fs.writeFile(…)
需要第三个(或第四个)参数,该参数是在操作完成时调用的回调函数。您应该提供回调函数或使用
fs.writeFileSync(…)

有关更多信息,请参见。

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

当我做以下事情时,这个错误击中了我的脸

var hello=myfunction(callme())

而不是


var hello=myfunction(callme)

自节点10起,必须在
fs.writefile()上传递回调

Node.js记录了变更的目的:

您可以像这样添加一个空回调
fs.writeFile('writeMe.txt',data,()=>{})

您也可以像这样使用它

var file2 =  fs.readFileSync("./Public/n2.jpeg")

完美的但是,为什么我们要将writeFile的函数再次定义为第三个参数,而readFile中的'data'参数保存了数据?为什么我们不能重用相同的数据?不需要在writeFile的回调函数中传递第三个参数。唯一的问题是我们应该传递一个回调函数。虽然这段代码可以解决OP的问题,但最好包含一个解释,说明您的代码如何解决OP的问题。通过这种方式,未来的访问者可以从您的帖子中学习,并将其应用到自己的代码中。因此,它不是一种编码服务,而是一种知识资源。此外,高质量、完整的答案更有可能被提升。这些特性,以及所有帖子都是独立的要求,是SO作为一个平台的一些优势,使其区别于论坛。您可以编辑以添加其他信息和/或用源文档补充说明使用
readFileSync
时无需使用
wait
,因为顾名思义,
readFileSync
是。wait和readFileSync是完全冗余的,因为readFileSync已经是一个同步函数
var file2 =  fs.readFileSync("./Public/n2.jpeg")
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);

    });
});