我对节点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)
请告知。
答案 0 :(得分:3)
这个错误告诉您的是,您正在引用的变量message
尚未定义。为了同时定义message
和user
,您将需要从命令行参数中获取这些值。
为此,我们将通过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。