有很多细节性的内容,我们通常去看别人写的文章,其实文档里早就写好了,只要看文档看的细致一些就行。
准备花一段时间把Node的官方文档仔细的读一遍,然后总结一些常见的内容。今天总结了7个比较小的问题
,汇总的比较简单。
NodeJs和浏览器的异同点
两者都使用Javascript
。浏览器主要处理用户交互,浏览器中有dom,bom,window对象及其他相关的Api。而nodeJs可以控制环境,版本升级较快,可以使用最近的Js语法。浏览器则可能被这些语法阻塞。浏览器使用es的模块机制,nodeJs使用commonJs规范。
如何退出Node程序
ctrl-c
控制台中的node程序,我们可以使用ctrl-c进行结束任务
process
- process模块提供了一个结束node程序任务的方法
process.exit()
当我们执行process.exit
, node程序立即被终结。 process.kill
还有一个方法是process.kill
process.kill(process.pid,'SIGTERM')
读取环境变量
process
模块儿提供了 env
属性,携带了所有的变量信息。
process.env.NODE_ENV // 'production'
从命令行接受参数
启动node程序时我们可以传递任意参数
代码语言:javascript复制node app.js
参数可以单独传,也可以以键值对的形式传:
代码语言:javascript复制// 直接传
node app.js terrence
// 键值对
node app.js name=terrence
我们可以通过process对象来读取参数。process对象提供了一个属性 argv,包含了一个接受到的参数数组。
数组中的第一项是,node 命令的全路径 数组中的第二项是,执行文件的全路径 剩下的是当前接收的参数
可以通过遍历获取当前接受的参数:
代码语言:javascript复制process.argv.forEach((val,index)=>{
console.log(`${index}:${val}`)
})
可以创建一个新的数组来获取当前的参数:
代码语言:javascript复制const args = process.argv.slice(2)
输出内容到命令行
命令行中输出内容主要用到console模块儿。
我们可以使用console对要输出的内容进行格式化
- %s 格式化为字符串
- %d格式化为数字
- %i 格式化部分数字
- %o格式化为对象
console.count()
可以统计变量被打印的次数
console.countReset()
可以重置变量被打印的次数
输出带颜色的文本
代码语言:javascript复制console.log('x1b[33m%sx1b[0m', 'hi!')
但是通常用封装好的 chalk
进度条
progress包,非常方便
代码语言:javascript复制const ProgressBar = require('progress')
const bar = new ProgressBar(':bar', { total: 10 })
const timer = setInterval(() => {
bar.tick()
if (bar.complete) {
clearInterval(timer)
}
}, 100
利用exports导出代码块
可以导入由别的文件暴露出的函数
代码语言:javascript复制const library = require('./library')
module.exports
module模块允许我们使用module.exports导出对应的信息
代码语言:javascript复制const getName = () => {
return 'terrence';
}
module.exports = getName
另外一方式是将要导出的对象作为exports的一个属性:
代码语言:javascript复制const car = {
brand:'Ford',
modal:'Fiesta'
}
exports.car = car
或者
代码语言:javascript复制exports.car = {
brand:'Ford',
modal:'Fiesta'
}
npm 将包安装到了什么地方
本地安装
代码语言:javascript复制npm install lodash
本地安装直接安装在当前文件夹中的node_modules文件夹中
全局安装
代码语言:javascript复制npm install -g lodash
mac 系统或 linux系统下:会在 /usr/local/lib/node_modules
路径下 windows 下:会在 C:/Users/your_name/AppData/Roaming/npm/node_modules
路径下
后记
很多知识点我们不知道,其实是因为没有仔细的读过其文档中的内容,因为文档读起来比较晦涩,近期的打算就是将node的文档仔细读一遍,然后有所体会,做些总结。