我创建了一个节点应用程序,它用于获取json格式的日志文件,在处理数据之后,我们创建了一个csv文件。我在应用程序中使用以下软件包
"dependencies": {
"bluebird":"^3.7.2",
"js-yaml":"^4.1.0",
"json2csv":"^5.0.6",
"node-jq": "^1.12.0",
"yargs": "^17.0.1"
}该应用程序已经正常工作了6个月,代码没有变化。我们在5天前做了一个预定的部署,从那时起,它不会生成报告,当我们试图生成文件时,我们会得到这个错误。
events.js:377抛出er;//未处理的“错误”事件^
Error: spawn C:\reporting-app\node_modules\node-jq\bin\jq ENOENT
at Process.ChildProcess._handle.onexit (internal/child_process.js:274:19)
at onErrorNT (internal/child_process.js:469:16)
at processTicksAndRejections (internal/process/task_queues.js:82:21)
Emitted 'error' event on ChildProcess instance at:
at Process.ChildProcess._handle.onexit (internal/child_process.js:280:12)
at onErrorNT (internal/child_process.js:469:16)
at processTicksAndRejections (internal/process/task_queues.js:82:21) {
errno: -4058,
code: 'ENOENT',
syscall: 'spawn C:\\reporting-app\\node_modules\\node-jq\\bin\\jq',
path: 'C:\\reporting-app\\node_modules\\node-jq\\bin\\jq',
spawnargs: [
'--slurp',
'[ .[] .logs[] ] | map(select(.context.recordID != "12345")) | unique_by(.context.ID) | map(select(.context.ID != null)) | map({ ID: .context.ID, timestamp: .timestamp, kiosk: .context.recordID, appTransactionId: .context.appTransactionId })'
]}我认为当我们尝试使用节点-jq.run方法时会出现错误(见下面)
execute(source) {
return jq.run(this.query, source, {
input: 'string',
slurp: true,
});
}如能在这方面提供任何帮助,将不胜感激。
发布于 2021-12-08 06:37:08
我不知道到底是什么问题,但我试着将node.js的版本降级为旧版本(在应用程序构建和部署时使用)。我删除了node_modules和Packe-lock.json文件。进行了npm安装,应用程序开始在本地工作。我将包-lock.json文件提升到服务器,服务器也开始工作。
我还有个问题要问。在过去的5个月里,代码没有改变。甚至没有包或包-锁. even文件。但是,我们每次使用这个应用程序生成报告时都会安装npm。开发人员说,他们没有更新服务器上的节点版本。有谁知道这个节点降级是如何解决这个问题的呢?
https://stackoverflow.com/questions/70244260
复制相似问题