[译]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 你可 ...
随机推荐
- Codeforces Round #389 Div.2 B. Santa Claus and Keyboard Check
time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standa ...
- dedecms /plus/stow.php Twice SQL Injection
catalog . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 收藏文章功能$title变量未过滤,造成二次注入 Relevant Li ...
- maven仓库没有的包依赖
如果有个jar包是我们自己打的,怎么放到maven中呢? 首先在项目里面新建一个lib目录,如果有lib目录则不需要新建,然后放自己的jar包进去,maven的pom.xml配置是: <depe ...
- django redis操作
from utils.redis.connect import redis_cache as rr.flushdb() 列表操作 r.lpush("name", xxxx) or ...
- JavaScript---认识JavaScipt
认识JavaScript 1.什么是JavaScript? JavaScript是属于网络的脚本语言,她被数百万计的网页用来改进设计.验证表单.检测浏览器.创建cookies以及更多的应用,她更是因特 ...
- Docker入门教程(二)命令
Docker入门教程(二)命令 [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第二篇,介绍了Docker的基本命令以及命令的用法和功能. 在Docker ...
- EmgnCv进行轮廓寻找和计算物体凸包
http://blog.csdn.net/qq_22033759/article/details/48029493 一.轮廓寻找 用的是FindContours函数,在CvInvoke中 不过需要用到 ...
- BZOJ1568: [JSOI2008]Blue Mary开公司
可以平衡树或线段树维护斜率来做. 还有一种线段树直接打标记的做法: 线段树每个节点存一条线段作为标记,打标记时如果已有标记,则把占优区间小的那个线段下放. #include<cstdio> ...
- 在C#中使用官方驱动操作MongoDB
MongoDB的官方驱动下载地址:https://github.com/mongodb/mongo-csharp-driver/releases 目前最新的版本是2.10,支持.NET 4.5以上.由 ...
- 使用ASP.NET Web Api构建基于REST风格的服务实战系列教程【十】——使用CacheCow和ETag缓存资源
系列导航地址http://www.cnblogs.com/fzrain/p/3490137.html 前言 本文将使用一个开源框架CacheCow来实现针对Http请求资源缓存,本文主要介绍服务器端的 ...