首页 > 解决方案 > 使用 fs writeFile 创建文件时 nodeJS 返回类型错误

问题描述

我刚开始学习nodeJS。我处于非常基础的水平。

现在我正在使用创建新文件和目录的方法。

这是我的代码 -

var fs = require('fs');


fs.mkdir("stuff", function () {
    fs.readFile('readMe.txt', 'utf8', function (err, data){
        fs.writeFile('./stuff/writeMe.txt', data);
    });
});

它会创建目录并读取文件,但不会创建新文件。

我一次又一次地检查了代码,但终端返回了这个错误。

fs.js:152
  throw new ERR_INVALID_CALLBACK(cb);
  ^

TypeError [ERR_INVALID_CALLBACK]: Callback must be a function. Received undefined
[90m    at maybeCallback (fs.js:152:9)[39m
[90m    at Object.writeFile (fs.js:1351:14)[39m
    at D:\PRANAV\Learning Folder\Node\app.js:6:12
[90m    at FSReqCallback.readFileAfterClose [as oncomplete] (internal/fs/read_file_context.js:63:3)[39m {
  code: [32m'ERR_INVALID_CALLBACK'[39m
}

我被困在这个问题上,请帮忙。

标签: javascriptnode.jsdebuggingfs

解决方案


fs.writeFile的最后一个参数应该是一个回调函数。现在,你错过了它:

fs.mkdir("stuff", function () {
    fs.readFile('readMe.txt', 'utf8', function (err, data) {
        fs.writeFile('./stuff/writeMe.txt', data, function (err) {
            if (err) {
                throw err;
            }
            console.log('written successfully!');
        });
    });
});

推荐阅读