我正在尝试做一个简单的程序,从命令行侦听argv,但是我得到了这个错误
C:\Users\user\Desktop\RLC Tracker & Updater\obfuscate.js:19
console.log(name.substr(-3));
^
TypeError: name.substr is not a function
at Object.<anonymous> (C:\Users\user\Desktop\RLC Tracker & Updater\obfuscate
.js:19:22)
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)这是密码
// Select the file as a argv
var name = process.argv.slice(2);
// Checks if the argv is null or empty
if(name == "")
{
console.log("\nPlease insert the file name.");
}
else if(name.substr(-3) == ".js")
{
// Code
}
else
{
//Code
}发布于 2020-12-11 21:37:27
.slice()返回一个数组。所以:
var name = process.argv.slice(2);将name设置为以索引2开头的所有参数的数组。
var name = process.argv[2];发布于 2020-12-11 21:43:07
Array.slice()返回一个数组。所以你想说些类似的话:
const name = process.argv.slice(2)[0]; // /will be undefined if not provided
if (!name) {
console.log("\nPlease insert the file name.");
} else if ( /[.][Jj][Ss]/.test(name) ) {
// name ends with '.js' (or '.JS' or '.Js' or '.jS')
} else {
// name does not end with '.js'
}https://stackoverflow.com/questions/65258912
复制相似问题