Menu
CoddyTech

命令行参数

本课属于 Coddy Node.js 学习旅程的“Node.js 基础”单元。第 3 课,共 33 课。

便笺工具需要知道你在它的名称后输入了什么。

process.argv 是命令中各个单词组成的数组:Node 的路径、你的文件路径,然后是你输入的单词。slice(2) 只保留你输入的单词。

// node greet.js Ada
const args = process.argv.slice(2);
console.log(`Hello, ${args[0]}!`);

node greet.js Ada 会输出 Hello, Ada!。每个单词都会作为单独的字符串传入,所以 node greet.js Ada Lovelace 会让 args 的值变成 ['Ada', 'Lovelace']。要把单词合并成一个字符串,请使用 join(' '):['Ada', 'Lovelace'].join(' ') 的结果是 'Ada Lovelace'。引号可以让多个单词保持在一起:node greet.js "Ada Lovelace" 会得到一个字符串。

challenge icon

挑战

简单

你的笔记工具需要知道你在 node notes.js 后面输入了什么。这里,它会从命令中读取一条笔记,再把笔记显示出来。

  1. 在 notes.js 中,使用 process.argv 读取你在 node notes.js 后面输入的词。第一个词是命令 add。目前它始终是 add。后面的每个词都是笔记内容。
  2. 笔记中的词会作为单独的字符串传入。把它们重新组合成一个字符串,每个词之间用一个空格隔开。
  3. 替换初始代码中的 console.log('Adding:') 这一行。打印一行内容:Adding: 后面接笔记内容。

对于 node notes.js add Buy milk,程序会打印:

Adding: Buy milk

对于 node notes.js add Call Ada tonight,程序会打印:

Adding: Call Ada tonight

在 Adding: 后面恰好加一个空格。注意:console.log('Adding: ', note) 会打印两个空格,因为 console.log 会在你传入的值之间自动添加一个空格。

试一试:在终端中,在 $ node notes.js 后面的输入框中输入 add Buy milk,然后按 Enter。你会看到 Adding: Buy milk。接着输入一条你自己的笔记,例如 add Call Ada tonight。最后,只输入 add:你会看到 Adding: 后面没有内容,因为没有笔记。这目前没问题。

亲手试试

// 你的笔记工具从这里开始。
// 运行 node notes.js add Buy milk 应输出:Adding: Buy milk
console.log('Adding:');
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

Node.js 基础中的所有课

自己练习: Express 在线编辑器