NodeJS 如何修复此错误TypeError [ERR_INVALID_CALLBACK]:回调必须是函数

vwhgwdsa  于 2023-04-29  发布在  Node.js
关注(0)|答案(9)|浏览(203)

我是nodejs的初学者。当我输入下面的代码时,会出现如下代码错误:
TypeError [ERR_INVALID_CALLBACK]:回调必须是函数

var fs = require('fs');
fs.readFile('readMe.txt', 'utf8', function (err, data) {
  fs.writeFile('writeMe.txt', data);
});
4xy9mtcn

4xy9mtcn1#

根据这里的文档,Fs.writeFile()接受(file,data[,options]和callback)参数,所以你的代码如下所示:

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

cgyqldqp2#

fs.writeFile(...)需要第三个(或第四个)参数,该参数是操作完成时要调用的回调函数。您应该提供回调函数或使用fs.writeFileSync(...)
有关详细信息,请参阅node fs文档。

nle07wnf

nle07wnf3#

从节点10开始,必须在fs.writefile()上传递回调
Node.js记录了变更的目的: www.example.com
您可以添加一个空回调,例如fs.writeFile('writeMe.txt', data, () => {})

ecbunoof

ecbunoof4#

你也是这样用的

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

pgvzfuti5#

您可以简单地使用同步功能

var fs = require('fs');
fs.readFileSync('readMe.txt', 'utf8', function (err, data) {
  fs.writeFileSync('writeMe.txt', data);
});

或使用回调函数

sqxo8psd

sqxo8psd6#

你可以从fs/promise导入fs模块,因为它们是模块的promise-fied版本,所以我们不需要不必要地使用回调函数。

import fs from 'fs/promises';

fs.readFileSync('readMe.txt', 'utf8', function (err, data) {
fs.writeFileSync('writeMe.txt', data);`});`
xmakbtuz

xmakbtuz7#

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

    });
});
gab6jxml

gab6jxml8#

试试这个。我已经用Promises写了代码。

const {readFile} = require('fs');
const {writeFileSync} = require('fs');
const readText = (path)=>{
 return new Promise((resolve,reject) => {
    readFile(path,'utf8',(err,result)=>{
      if(err)
        reject(err);
      else
        resolve(result);
      })
  })
}

readText('./contents/sample.txt')
  .then(val=>writeFileSync('./results.txt',val))
  .catch(err=>console.log(err));
inb24sb2

inb24sb29#

当我在做下面的事情时,这个错误给了我当头一棒;
var hello = myfunction( callme() );
而不是
var hello = myfunction( callme );

相关问题