# 基础使用
# 环境变量
在 node 中使用 process.env.NODE_ENV
可以获取当前设置的变量
那如果设置呢?
出于兼容性考虑,一般使用 cross-env
模块设置环境变量
console.log(process.env.NODE_ENV)
"scripts": {
"start": "cross-env NODE_ENV=dev node ./base.js"
},
# 从命令行接收参数
process.argv
可以属性可以获取命令行参数的,它的值是一个数组
第一个参数是 node 命令的完整路径
第二个参数是正被执行的文件的完整路径
所有其他的参数从第三个位置开始
node .\base.js name=lanjz
// [
// 'C:\\Program Files\\nodejs\\node.exe',
// 'D:\\github\\Hello-Word\\blog\\docs\\Node\\Demo\\base.js',
// 'name=lanjz'
// ]
# 输出到命令行
最基础、最常用的方法是 console.log()
,该方法会打印传入到控制台的字符串
可以通过传入变量和格式说明符来格式化用语
%s
会格式化变量为字符串%d
会格式化变量为数字%i
会格式化变量为其整数部分%o
会格式化变量为对象
# 元素计数
const oranges = ['橙子', '橙子']
const apples = ['苹果']
oranges.forEach(fruit => {
console.count(fruit)
})
apples.forEach(fruit => {
console.count(fruit)
})
# 清空控制台
console.clear()
会清除控制台(其行为可能取决于所使用的控制台)
# 计算耗时
可以使用 console.time([key])
和 console.timeEnd([key])
轻松地计算函数运行所需的时间:
前面后的 key
要一致才能对应
const doSomething = () => console.log('测试')
const measureDoingSomething = () => {
console.time('doSomething()')
//做点事,并测量所需的时间。
doSomething()
console.timeEnd('doSomething()')
}
measureDoingSomething()
# 为输出着色
可以使用转义序列在控制台中为文本的输出着色。 转义序列是一组标识颜色的字符
console.log('\x1b[33m%s\x1b[0m', '你好')
// 将输出 黄色 的 你好
Chalk
(opens new window) 是一个帮助我们简单得控制输出着色的库,除了为其着色外,它还有助于其他样式的设置(例如使文本变为粗体、斜体或带下划线)
log(chalk.blue.bgRed.bold('Hello world!'))
: 红底蓝字chalk.underline.bgBlue('world')
:下划线log(chalk.blue.bold('Hello world!'))
: 蓝字加粗
# 进度条
Progress 是一个很棒的软件包,可在控制台中创建进度条。 使用 yarn addl progress
进行安装
以下代码段会创建一个 100 步的进度条,每 100 毫秒完成一步。 当进度条结束时,则清除定时器
const ProgressBar = require('progress')
var bar = new ProgressBar(' downloading [:bar] :rate/bps :percent :etas', {
complete: '=', // 完成时填充的图案
incomplete: ' ', // 未完成时填充的图案
width: 10, // 整个进度条的长度
total: 10 // 步数
});
const timer = setInterval(() => {
bar.tick()
if (bar.complete) {
clearInterval(timer)
}
}, 100)
# 从命令行接收输入
const readline = require('readline').createInterface({
input: process.stdin,
output: process.stdout
})
readline.question(`你叫什么名字?`, name => {
console.log(`你好 ${name}!`)
readline.close()
})
这段代码会询问用户名,当输入了文本并且用户按下回车键时,则会发送问候语
最简单的方式是使用 inquirer
(opens new window) 软件包,其在 API 方面非常相似
const inquirer = require('inquirer')
var questions = [
{
type: 'input',
name: 'name',
message: "你叫什么名字?"
}
]
inquirer.prompt(questions).then(answers => {
console.log(`你好 ${answers['name']}!`)
})
# 直接执行node_modeles安装的包
使用 npx