我似乎无法在node中运行最简单的脚本:
平台:Windows 10
节点-v:v10.7.0
文件:“ sample.js”
process.argv.forEach((val, index) => {
console.log(`${index}: ${val}`);
});
命令行:
D:\temp>node sample.js 1 2 3
D:\temp\sample.js:4
process.argv.forEach((val, index) => {
^
TypeError: Cannot read property 'forEach' of undefined
at Object.<anonymous> (D:\temp\sample.js:4:14)
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:266:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:596:3)
答案 0 :(得分:1)
重申我的评论作为答案,就像DarrenCook confirmed I was correct in his particular case:
向我们显示整个sample.js
文件。具体来说,process.argv.forEach()
的第4行之前的1-3行是什么?我保证这三行之一是将process
重新定义为Function
,而不是原来的Object
。
答案 1 :(得分:1)
解决方案
我发现,我在下面定义了函数进程,这就是进程对象被我自己覆盖的原因。
所以,要解决:
检查是否没有使用函数覆盖“ process”对象
逐行将其初始化为更高的代码,然后查找什么代码 覆盖它
旧建议:
就我而言,即使我将其放在第一行,它也是“重新定义的”。 “过程”是一个功能。
要检索对象,我使用了显式调用:
const process = require('process');
答案 2 :(得分:0)
代码正确,重新安装node.js。