原文: http://blog.risingstack.com/node-js-interview-questions/
- 什么是error-first callback?
- 如何避免无休止的callback嵌套?
- 如何监听80端口?
- 什么是事件循环?
- 使用什么工具保持一致的代码风格?
- operational和programmer错误的区别是什么?
- 为什么npm shrinkwrap非常有用?
什么是error-first callback?
Error-first callback被用来传递错误和数据. 第一个参数是error对象,开发者用来检测是否有异常. 其它的参数用来传递数据.
fs.readFile(filePath, function(err, data) { if (err) { //handle the error } // use the data object });
如何避免无休止的callback嵌套?
- modularization模块化: 把callback拆分到独立的function中去
- 使用Promises
- 使用Generators yield
如何监听80端口?
陷阱题! 你不应该用80端口监听NodeJS .
在Node里面监听一个1024以上的端口, 前面放一个 nginx 进行反向代理.
什么是事件循环?
Node.js在单线程中运行. 注意了Node.js 能借助libuv之类的来使用多线程
每个 I/O 操作需要一个回调 - 一旦完成他们会被放到事件循环中去执行
使用什么工具保持一致的代码风格?
操作运行错误和程序错误有什么不同?
运行错误不是bug, 是系统的问题, 例如网络请求超时或者硬件错误.
程序错误才是bug.
为什么npm shrinkwrap非常有用?
当你部署你的Node.js应用的时候非常有用 - 你可以确定你依赖包的哪个版本被部署上线.