[译]Node.js面试问与答

原文: http://blog.risingstack.com/node-js-interview-questions/javascript

  • 什么是error-first callback?
  • 如何避免无休止的callback嵌套?
  • 如何监听80端口?
  • 什么是事件循环?
  • 使用什么工具保持一致的代码风格?
  • operational和programmer错误的区别是什么?
  • 为何npm shrinkwrap很是有用?

 

什么是error-first callback?

Error-first callback被用来传递错误和数据. 第一个参数是error对象,开发者用来检测是否有异常. 其它的参数用来传递数据.java

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

在Node里面监听一个1024以上的端口, 前面放一个 nginx 进行反向代理.nginx

 

什么是事件循环?

Node.js在单线程中运行. 注意了Node.js 能借助libuv之类的来使用多线程npm

每一个 I/O 操做须要一个回调 - 一旦完成他们会被放到事件循环中去执行api

 

使用什么工具保持一致的代码风格?

 

操做运行错误和程序错误有什么不一样?

运行错误不是bug, 是系统的问题, 例如网络请求超时或者硬件错误.网络

程序错误才是bug.多线程

 

为何npm shrinkwrap很是有用?

当你部署你的Node.js应用的时候很是有用 - 你能够肯定你依赖包的哪一个版本被部署上线.模块化

相关文章
相关标签/搜索