Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.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
Javascript 回调不是函数,但脚本可以工作_Javascript_Node.js_Regex - Fatal编程技术网

Javascript 回调不是函数,但脚本可以工作

Javascript 回调不是函数,但脚本可以工作,javascript,node.js,regex,Javascript,Node.js,Regex,你好,我对这个代码有问题 const lineReplace = require('line-replace') lineReplace({ file: 'outputfinal.txt', line: 4, text: '', addNewLine: false, onReplace }) function onReplace({file, line, text, replacedText}) { } 脚本删除了第4行,因此脚本可以工作。但它返回一个错误,停止脚本的

你好,我对这个代码有问题

const lineReplace = require('line-replace')

lineReplace({
  file: 'outputfinal.txt',
  line: 4,
  text: '',
  addNewLine: false,
  onReplace
})

function onReplace({file, line, text, replacedText}) {

}
脚本删除了第4行,因此脚本可以工作。但它返回一个错误,停止脚本的执行

      callback({file, line, replacedText, text})
      ^

TypeError: callback is not a function
    at WriteStream.<anonymous> (C:\Users\Niiky\Desktop\node_modules\[4mline-replace[24m\src\line-replace.js:38:7)
[90m    at Object.onceWrapper (events.js:299:28)[39m
[90m    at WriteStream.emit (events.js:210:5)[39m
[90m    at finishMaybe (_stream_writable.js:666:14)[39m
[90m    at _stream_writable.js:643:7[39m
[90m    at WriteStream._final (internal/fs/streams.js:297:3)[39m
[90m    at callFinal (_stream_writable.js:636:10)[39m
[90m    at processTicksAndRejections (internal/process/task_queues.js:80:21)[39m
回调({file,line,replacedText,text})
^
TypeError:回调不是函数
在WriteStream。(C:\Users\Niiky\Desktop\node\u modules\[4mline replace[24m\src\line replace.js:38:7)
[Object.onceWrapper上的90m(events.js:299:28)[39m]
[WriteStream.emit(events.js:210:5)上的90m)[39m
[90m在finishMaybe(_stream_writable.js:666:14)[39m
[90m at_stream_writable.js:643:7[39m]
[90米在WriteStream.\u final(内部/fs/streams.js:297:3)[39米
[callFinal时为90m(_stream_writable.js:636:10)[39m]
[ProcessTicks和Rejections时为90m(内部/流程/任务队列.js:80:21)[39m
为什么会出现此错误以及如何解决此错误?

这是错误的/误导性的。它似乎希望您传入的回调是名为
callback
的属性,而不是
onReplace

const lineReplace = require('line-replace')

lineReplace({
  file: 'outputfinal.txt',
  line: 4,
  text: '',
  addNewLine: false,
  callback: onReplace   // this argument apparently needs to be a property named callback    
})

function onReplace({file, line, text, replacedText}) {

}
在像这样的问题中,特别是像这样一个相当简单的模块,只需查找一下,看看它在做什么


轻微警告。虽然此库使用异步流来读取/写入文件,但它使用同步I/O来重命名/删除临时文件。因此,如果不在库中修复此问题,则不应在服务器上下文中使用它。

嘿!非常感谢您花时间回答、查看代码并创建此问题!您答对了我不知道对FS的同步调用,所以我刚刚删除了它们并发布了v2。希望这有帮助。干杯!