命令行参数
本课属于 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" 会得到一个字符串。
挑战
简单你的笔记工具需要知道你在 node notes.js 后面输入了什么。这里,它会从命令中读取一条笔记,再把笔记显示出来。
- 在
notes.js中,使用process.argv读取你在node notes.js后面输入的词。第一个词是命令add。目前它始终是add。后面的每个词都是笔记内容。 - 笔记中的词会作为单独的字符串传入。把它们重新组合成一个字符串,每个词之间用一个空格隔开。
- 替换初始代码中的
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:');
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
Node.js 基础中的所有课
自己练习: Express 在线编辑器