process.argv在node.js中未定义

时间:2018-10-14 22:18:09

标签: node.js

我似乎无法在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)

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)

解决方案

我发现,我在下面定义了函数进程,这就是进程对象被我自己覆盖的原因。

所以,要解决:

  1. 检查是否没有使用函数覆盖“ process”对象

  2. 逐行将其初始化为更高的代码,然后查找什么代码     覆盖它

旧建议:

就我而言,即使我将其放在第一行,它也是“重新定义的”。 “过程”是一个功能。

要检索对象,我使用了显式调用:

const process = require('process');

答案 2 :(得分:0)

代码正确,重新安装node.js。