基础部分
Nodejs应用场景
- IO密集型高并发请求,Nodejs作为中间层(Bff层),接收客户端Http请求,格式化数据,渲染html页面,合并接口请求,解决跨域,数据缓存
- 操作数据库提供API服务
- 实时聊天程序
- Nodejs更加适合IO密集型任务
Nodejs全局对象
与浏览器平台的 window 不完全相同,Nodejs全局对象上挂载许多属性,全局对象是JavaScript中的特殊对象,Nodejs中全局对象是global,不需要提前定义,Global的根本作用就是作为宿主,全局对象可以看做是全局变量的宿主
- __filename:返回正在执行脚本文件的绝对路径
- __dirname:返回正在执行脚本所在目录
- timer类函数:执行顺序与事件循环间的关系
- process:提供与当前进程互动的接口
- require:实现模块的加载
- module,export:处理模块的导出
console.log('tag', __filename)
console.log('tag', __dirname)
console.log('tag', this)
console.log(
'tag',
this === global
)(
function () {
console.log('tag', this === global)
}
)()
全局变量-process
- 无需 require 可直接使用
- 可以获取进程信息:环境,cpu,内存
- 可以执行进程操作
console.log('tag', process.cwd())
console.log('tag', process.version)
console.log('tag', process.versions)
console.log('tag', process.arch)
console.log('tag', process.env)
console.log('tag', process.platfrom)
console.log('tag', process.argv)
console.log('tag', process.pid)
console.log('tag', process.uptime())
process.on('exit', (code) => {
console.log('tag', code)
})
process.on('beforeExit', (code) => {
console.log('tag', code)
})
process.exit()
console.log = function (data) {
process.stdout.write('---' + data + '\n')
}
process.stdin.pipe(process.stdout)