10 个技巧,2017 年成为更好的 Node 开发者

JSON.parse(response)  } catch(error) {    console.error(error)  }})) Viyi Viyi翻译于 1天前0人顶  翻译得不错哦! 

返回回调或使用 if … else

Node 是并发的。所以,如果不加注意,它可能会变成一个错误。 为了安全起见,我们使用 return 语句终止执行:

let error = trueif (error) return callback(error)console.log('I will never run - good.')

确保返回一个回调,以防止继续执行。

snake_007 snake_007翻译于 2天前0人顶  翻译得不错哦! 

监听错误事件

几乎所有的 Node 类/对象都扩展了事件发射器(观察者模式)并抛出错误事件。在错位被破坏之前,这给开发人员提供了捕获错误并处理的机会。

使用 .on() 为错误创建事件侦听器是个好习惯:

var req = http.request(options, (res) => {  if (('' + res.statusCode).match(/^2\d\d$/)) {    // Success, process response  } else if (('' + res.statusCode).match(/^5\d\d$/))    // Server error, not the same as req error. Req was ok.  }})req.on('error', (error) => {  // Can't even make a request: general error, e.g. ECONNRESET, ECONNREFUSED, HPE_INVALID_VERSION  console.log(error)})
Tocy Tocy翻译于 1天前0人顶  翻译得不错哦! 

了解 npm

很多 Node 开发者甚至前端开发者都知道 --save(npm install 的参数)可以安装一个模块并在 package.json 中记录模块的版本。另外,还有 --save-dev,用于在 devDependencies 添加记录(记录那些不需要在发布时的模块)。不过你知道可以用 -S 和 -D 代替 --save 和 --save-dev 吗?你可以尝试这样做。

在 package.json 中使用准确的版本号

在安装模块的时候,去删除 -S  和 -D 为你添加的那些 ^ 记号。它们非常危险,因为它们允许 npm install(或简写为 npm i)从 npm 库中拉取最新的小版本(语义化的版本号中的第2个数)。比如从 v6.1.0 到 v6.2.0 就是一个小版本发布。

npm 团队信任 semver,但你不能。他们加上 ^ 符号是因为他们相信开源作者不会在小版本中引入破坏性的修改。然而明眼人都知道它是不可靠的。你应该锁定版本号,最好使用 shrinkwrap:npm shrinkwrap 创建一个包含依赖的具体版本的新文件。

Viyi Viyi翻译于 1天前0