我正在学习node.js,我想从用户那里获得输入并将它们写入一个名为points.txt的文件
const process = require("process")
const fs = require("fs")
const [, , num1,num2,num3,num4] = process.argv
fs.writeFileSync('points.txt', process.argv[2,3,4,5])
node app.js 1 2 3 4
然而,在这段代码中,我只看到了4如果我打开points。txt文件。我应该看到1 2 3 4
表达式process.argv[2,3,4,5]
返回到process.argv[5]
(这些逗号操作符只是计算每个int,整个表达式的值最终作为最后一个int的值)。
由于代码已经分配了它想要写入num
变量的参数,因此将这些参数写入…
const process = require("process")
const fs = require("fs")
const [, , num1,num2,num3,num4] = process.argv
console.log(num1, num2, num3, num4)
fs.writeFileSync('points.txt', [num1,num2,num3,num4])
您不能使用,
操作符以这种方式获取多个值。逗号操作符返回它的最后一个操作数,因此您的代码等于process.argv[5]
,在这种情况下应该返回4
。您可以使用slice
方法:
process.argv.slice(2);
原数组不能被修改。
slice()
方法返回数组的一部分的浅拷贝到一个从开始到结束(不包括结束)选择的新数组对象中,其中start和end表示该数组项的索引。
要将slice
调用返回的数组转换为字符串,可以使用join
方法:process.argv.slice(2).join(' ')