[译]Node.js面试问与答
原文: 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面试问与答的更多相关文章
- Vue.js 一问一答
Vue.js 一问一答 记录一下在学习 Vue 过程中给自己问的一些问题,持续更新中... Vue.js 的核心是什么? 官网:Vue.js 的核心是一个允许采用简洁的模板语法来声明式的将数据渲染进 ...
- [译]Node.js - Event Loop
介绍 在读这篇博客之前,我强列建议先阅读我的前两篇文章: Getting Started With Node.js Node.js - Modules 在这篇文章中,我们将学习 Node.js 中的事 ...
- [译]Node.js Interview Questions and Answers (2017 Edition)
原文 Node.js Interview Questions for 2017 什么是error-first callback? 如何避免无止境的callback? 什么是Promises? 用什么工 ...
- 译\Node.js应用的持续部署
Node.js应用的持续部署 翻译前 翻译自:https://blog.risingstack.com/continuous-deployment-of-node-js-applications/ 正 ...
- [译]Node.js : Building RESTful APIs using Loopback and MySQL
国庆后可能就要使用StrongLoop那套东西来做项目了 原文:http://www.javabeat.net/loopback-mysql/ Loopback是什么? Loopback是一个开源的N ...
- [译]Node.js Best Practices - Part 2
原文: https://blog.risingstack.com/node-js-best-practices-part-2/ 统一风格 在大团队开发JS应用, 创建一个风格指南是很有必要的. 推荐看 ...
- [译]Node.js Best Practices
原文: http://blog.risingstack.com/node-js-best-practices/ 下面的的最佳实践分为代码风格和开发工作流两种. 代码风格 Callback约定 Modu ...
- (译)Node.js的 EventEmitter 教程
原文标题:Node.js EventEmitter Tutorial 原文链接:http://www.hacksparrow.com/node-js-eventemitter-tutorial.htm ...
- (译)Node.js的全局变量
原文标题:Global Variables in Node.js 原文链接:http://www.hacksparrow.com/global-variables-in-node-js.html 你可 ...
随机推荐
- BackGroundWorker控件的使用注意
该控件有三个事件: DoWork .ProgressChanged 和 RunWorkerCompleted 在程序中调用RunWorkerAsync方法则会启动DoWork事件的事件处理,当在事件处 ...
- 偶然发现的Unity3d,两点之间的距离计算。
无意间查了一下Vector3的API,发现了一个方法. magnitude Returen the length of vector(Read Only). 然后就试了一下这个方法. Vector3 ...
- AngularJs $sce 和 $sceDelegate 上下文转义
$sce $sce 服务是AngularJs提供的一种严格上下文转义服务. 严格的上下文转义服务 严格的上下文转义(SCE)是一种需要在一定的语境中导致AngularJS绑定值被标记为安全使用语境的模 ...
- JS-DOM对象知识点汇总(慕课)
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>D ...
- EasyUi 方法传递多个参数值得方法
1.项目中需要传递多个参数值 function actionFtt(value, row, index) { //传递查询需要的参数 var customerId = row.customerId;/ ...
- uC/OS-II内存(OS_mem)块
/*************************************************************************************************** ...
- java内存配置
使用Java程序从数据库中查询大量的数据时出现异常:java.lang.OutOfMemoryError: Javaheap space 在JVM中如果98%的时间是用于GC且可用的 Heap siz ...
- asp.net下调用Matlab生成动态链接库
对于这次论文项目,最后在写一篇关于工程的博客,那就是在asp.net下调用matlab生成的dll动态链接库.至今关于matlab,c/c++(opencv),c#(asp.net)我总共写了4篇配置 ...
- Jint .net平台的javascript引擎
使用需求 有时候一段Javascript代码写的很棒,而我们又无法将之翻译成.net或翻译之成本很高的时候 我们就可以使用Jint引擎来运行Javascript代码,来得到我们想要的结果 或者上 ht ...
- 原创最简单的ORM例子
这个仅是为了培训做的一个小例子 public class DB { public static string GetClassName(Type type) { if (type == nul ...