整理一小部分nodejs面试题
- 1. nodejs是什么?
- 2. nodejs和前端js的区别?
- 3. nodejs如何进行调试?
- 4. 当前文件和目录的路径如何获取?
- 5. commonjs和es6 module的区别?
- 6. path.resolve和path.join的区别?
- 7. 事件循环(event loop)在nodejs和游览器中的区别?
- 8. session如何实现登录?
- 9. 请描述koa2和express的中间件机制
- 10. async和await执行顺序的考察
- 11. 描述koa2洋葱圈模型
- 12. 如何逐行读取一个1G大小的日志文件?
- 13. nodejs线上环境为何要开启多进程?
1. nodejs是什么?
- Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时
- nodejs出现之前,js只能在游览器运行
- nodejs出现之后,js可以在任何安装nodejs的环境运行
2. nodejs和前端js的区别?
- 语法不同
nodejs和js有共同的es语法,但是API不一样 - 应用不同
2.1 前端js用于网页,在游览器运行
2.2 nodejs可用于服务端,如开发web server
2.3 nodejs 也可以用于本机,如webpack等本机工具
3. nodejs如何进行调试?
- 启动nodejs 服务时,使用inspect
- 代码中使用debugger断点
- 使用Chrome调试,在游览器输入: chrome://inspect
4. 当前文件和目录的路径如何获取?
- __filename 获取当前文件
- __dirname 获取当前路径
5. commonjs和es6 module的区别?
- 语法不同
- commonjs是动态引入,执行时引入
- ES6 module 是静态引入,编译时引入,一般放在顶部
6. path.resolve和path.join的区别?
- 两者都是拼接文件路径
- path.resolve 获取绝对路径
- path.join 获取在相对路径
7. 事件循环(event loop)在nodejs和游览器中的区别?
- 游览器事件循环引用阮一峰老师的博客:JavaScript 运行机制详解:再谈Event Loop
- nodejs 参考其他博主的博客,如: NodeJs 的 Event loop 事件循环机制详解
8. session如何实现登录?
9. 请描述koa2和express的中间件机制
参考博客: Koa2 和 Express 中间件对比
10. async和await执行顺序的考察
参考博客:async 函数的含义和用法
11. 描述koa2洋葱圈模型
参考博客:Koa2 中间件简易洋葱圈模型实现
12. 如何逐行读取一个1G大小的日志文件?
13. nodejs线上环境为何要开启多进程?
- 高效使用多核CPU
- 充分利用服务器内存
- 最终: “压榨”服务器,不浪费资源
- 可以使用 PM2 进行管理