返回回调或使用 if … else
Node 是并发的。所以,如果不加注意,它可能会变成一个错误。 为了安全起见,我们使用 return 语句终止执行:
let error = trueif (error) return callback(error)console.log('I will never run - good.')
确保返回一个回调,以防止继续执行。
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翻译于 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翻译于 1天前0