原文: 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应用的时候非常有用 - 你可以确定你依赖包的哪个版本被部署上线.

最新文章

  1. Java EE 和 Java Web
  2. iOS,Objective-C,相册功能的实现。
  3. CactiEZ命令行添加主机监控参考
  4. Objective-C命名编写规范
  5. 正确使用c语言中的头文件
  6. Jquery 的bind(), live(), delegate(), on()绑定事件方式
  7. JDK版本错误:Unsupported major.minor version 51.0
  8. node js npm 和 cnpm的使用
  9. C# 仿金山毒霸启动和关闭淡入淡出效果
  10. CSS 实现的各种球体效果
  11. Dokan简介[转]
  12. UVa 341 - Non-Stop Travel
  13. Codeforces Round #308 (Div. 2)
  14. android: 在APP中显示高德地图SDK
  15. Innodb buffer 相关参数
  16. Struts2访问ServletAPI的三种方式
  17. SVN跨版本库迁移目录并保留提交日志
  18. transition(过渡)
  19. 用python实现的的手写数字识别器
  20. session判断重复提交

热门文章

  1. 禁用Resharper长代码自动换行的解决办法
  2. SQLServer自动备份和自动删除过期文件
  3. 洛谷P1168 中位数
  4. 第三次个人作业——关于K米(Andorid)的案例分析
  5. Hierarchical Softmax
  6. group by语句
  7. Django admin美化插件suit
  8. CSS-论css如何纯代码实现内凹圆角
  9. JS-Date对象
  10. (翻译)如何对python dict 类型按键(keys)或值(values)排序