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

[译]Node.js面试问与答的更多相关文章

  1. Vue.js 一问一答

    Vue.js 一问一答 记录一下在学习 Vue 过程中给自己问的一些问题,持续更新中... Vue.js 的核心是什么? 官网:Vue.js 的核心是一个允许采用简洁的模板语法来声明式的将数据渲染进 ...

  2. [译]Node.js - Event Loop

    介绍 在读这篇博客之前,我强列建议先阅读我的前两篇文章: Getting Started With Node.js Node.js - Modules 在这篇文章中,我们将学习 Node.js 中的事 ...

  3. [译]Node.js Interview Questions and Answers (2017 Edition)

    原文 Node.js Interview Questions for 2017 什么是error-first callback? 如何避免无止境的callback? 什么是Promises? 用什么工 ...

  4. 译\Node.js应用的持续部署

    Node.js应用的持续部署 翻译前 翻译自:https://blog.risingstack.com/continuous-deployment-of-node-js-applications/ 正 ...

  5. [译]Node.js : Building RESTful APIs using Loopback and MySQL

    国庆后可能就要使用StrongLoop那套东西来做项目了 原文:http://www.javabeat.net/loopback-mysql/ Loopback是什么? Loopback是一个开源的N ...

  6. [译]Node.js Best Practices - Part 2

    原文: https://blog.risingstack.com/node-js-best-practices-part-2/ 统一风格 在大团队开发JS应用, 创建一个风格指南是很有必要的. 推荐看 ...

  7. [译]Node.js Best Practices

    原文: http://blog.risingstack.com/node-js-best-practices/ 下面的的最佳实践分为代码风格和开发工作流两种. 代码风格 Callback约定 Modu ...

  8. (译)Node.js的 EventEmitter 教程

    原文标题:Node.js EventEmitter Tutorial 原文链接:http://www.hacksparrow.com/node-js-eventemitter-tutorial.htm ...

  9. (译)Node.js的全局变量

    原文标题:Global Variables in Node.js 原文链接:http://www.hacksparrow.com/global-variables-in-node-js.html 你可 ...

随机推荐

  1. ubuntu 设置 NAT 转发

    针对需求: 嵌入式开发中,经常使用板子和笔记本通过网线直连,如果需要板子连接到外网,就比较尴尬. 最简单方法,可以把板子接到局域网内,我们的笔记本通过局域网交换机连接到板子,可是,这样要很多修改 IP ...

  2. matlab从txt文本导入数据作图

    Matlab上 fr = fopen('d:\Matlab\长期纪录2014-3-11.txt', 'r');data=fscanf(fr,'%f',[1,inf]);axis([0 90000 -8 ...

  3. @EmbeddedId和@idClass的区别

    @idClass 使复合主键类成为非嵌入类,使用 @IdClass 批注为实体指定一个复合主键类(通常由两个或更多基元类型或 JDK 对象类型组成).从原有数据库映射时(此时数据库键由多列组成),通常 ...

  4. jQuery—DOM操作

    摘抄自<锋利的jQuery> 一.查找节点 1.查找元素节点 var li_txt = $li.text(); 2.查找属性节点 var p_txt = $para.attr(" ...

  5. 利用php制作简单的文本式留言板

    del.php 代码如下: <html><head ><meta charset="utf-8"><title>我的留言板</ ...

  6. Character literal must contain exactly one character -- 一天一点小知识

    编程语言高度抽象化以后,错误也越来越让人难以理解了, NET编程最常见的一个错误, Object not set to the reference ,过了好久,才明白过来, 就是不明白为啥微软不说   ...

  7. sql练习

  8. f.lux for Linux安装

    1.安装f.luxsudo add-apt-repository ppa:kilian/f.lux sudo apt-get update sudo apt-get install fluxgui 2 ...

  9. IOS VFL屏幕自适应

    -(void)fun1{ //注意使用VFL,不用设置视图的frame UIView *view = [[UIView alloc] init]; view.backgroundColor = [UI ...

  10. SVN cleanup操作反复失败解决办法

    今天在更新项目的时候遇到一个问题,按惯例要cleanup才能重新更新.但是很不幸,在cleanup的时候又遇到了问题! 1    svn cleanup failed–previous operati ...