[ERR_INVALID_ARG_TYPE]:“监听器”参数的类型必须为_addListener(events.js:180:11)

时间:2019-01-18 13:03:14

标签: node.js fs pdf-reader

更新: 全新安装NodeJS后,此问题已解决。

我正在尝试在NodeJS中创建PDF文件下载器。这是我的代码

new mapboxgl.Marker(el, {
  offset: [0, -25]
})
.setLngLat(marker.geometry.coordinates)
.setPopup(new mapboxgl.Popup()//add popups
    .setHTML('<h3>' + marker.properties.title + '</h3><p><a href="' + marker.properties.link + '" target="_blank">' + marker.properties.description + '</a></p><p><a href="' + marker.properties.link + '" target="_blank"><img src="' + marker.properties.picture + '" title="" /></a></p>'))
.addTo(map);

这是我得到的错误:

                const file = fs.createWriteStream(filePath);
                const sendReq = request.get(pdfUrl);
                sendReq.on('response', (response) => {
                    if (response.statusCode !== 200) {
                        reject()
                    }
                    sendReq.pipe(file);
                });   
                file.on('finish', () => {
                    file.close()
                    resolve()
                });
                sendReq.on('error', (err) => {
                    console.log(err)
                    fs.unlink(file);
                    reject()
                });

我正在将ubuntu 16.04与 节点:v10.15.0

如果我删除此代码,就没有错误

TypeError [ERR_INVALID_ARG_TYPE]: The "listener" argument must be of type Function at _addListener (events.js:180:11) at WriteStream.addListener (events.js:240:10) at WriteStream.close (fs.js:2302:10) at WriteStream.<anonymous> (/var/www/html/lottery-api/app/Helpers/DocumentHelper.js:25:30) at WriteStream.emit (events.js:164:20) at finishMaybe (_stream_writable.js:605:14) at afterWrite (_stream_writable.js:456:3) at onwrite (_stream_writable.js:446:7) at fs.js:2246:5 at FSReqWrap.wrapper [as oncomplete] (fs.js:703:5)

我正在使用pdfreader package来解析保存的pdf文件。 如果删除上面的代码,我将无法正确处理回调,并且pdf阅读器会产生错误。

以下是错误:

file.on('finish', () => {
     file.close()
     resolve()
});

我在做什么错?

在具有节点v10.15.0的MacOS Mojave 10.14中,相同的代码可以正常工作

0 个答案:

没有答案