[譯]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應用的時候很是有用 - 你能夠肯定你依賴包的哪一個版本被部署上線.模塊化

相關文章
相關標籤/搜索