节点JS中的Commnd行参数

时间:2018-11-07 22:55:14

标签: javascript node.js

我对节点js和节点js中的javascript执行非常陌生。我试图用参数在节点js中执行一个小脚本,我想在用myTest.js编写的函数中传递消息和用户名

myTest(message, user);

function myTest(message, user) {
    console.log(message + ": "+ user);
}

我遇到以下错误:

(function (exports, require, module, __filename, __dirname) { myTest(message, user);
                                                                 ^

ReferenceError: message is not defined
    at Object.<anonymous> (C:\Users\kp250041\Desktop\ProgramFiles\mytest.js:1:70)
    at Module._compile (internal/modules/cjs/loader.js:688:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:699:10)
    at Module.load (internal/modules/cjs/loader.js:598:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:537:12)
    at Function.Module._load (internal/modules/cjs/loader.js:529:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:741:12)
    at startup (internal/bootstrap/node.js:285:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:739:3)

请告知。

1 个答案:

答案 0 :(得分:3)

这个错误告诉您的是,您正在引用的变量message尚未定义。为了同时定义messageuser,您将需要从命令行参数中获取这些值。

为此,我们将通过process.argv访问它们。假设您先传递message,然后传递user,则结果代码将如下所示。

// The first argument is the node executable
// The second is the script file name
let message = process.argv[2],
    user = process.argv[3];

function myTest(message, user) {
    console.log(message + ": "+ user);
}

myTest(message, user);

有关Node.js中命令行参数的更多信息,请参见this post