妙招-TypeError [ERR_INVALID_CALLBACK]: Callback must be a function错误解析

问题描述

执行node指令时报错,之前好的,突然就报错了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
 throw new ERR_INVALID_CALLBACK();
^

TypeError [ERR_INVALID_CALLBACK]: Callback must be a function
at maybeCallback (fs.js:129:9)
at Object.writeFile (fs.js:1137:14)
at Object.<anonymous> (/Users/guxuelong/Documents/project/element/build/bin/iconInit.js:20:4)
at Module._compile (internal/modules/cjs/loader.js:689:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
at Module.load (internal/modules/cjs/loader.js:599:32)
at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
at Function.Module._load (internal/modules/cjs/loader.js:530:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:742:12)
at startup (internal/bootstrap/node.js:279:19)

解决方案

1
2
// 具体里面的参数参考node v10 的文档,或者直接删除可选的参数
fs.write(fd, buf, function(err, written, buffer) {});

妙招原理

node 版本问题,node v10 以上 fs.write 的 callback 是必须的。
如果不想重新安装node到低版本,直接修改代码即可