node.js - 是否编写node.js api回调

标签 node.js mongodb amazon-dynamodb restify

各位, 假设使用 NodeJS (restify.js) 编写的 API 使用 NOSQL 后端(mongo 或 dynamo)。

当您进行阻塞操作时,例如读取或写入文件,以非阻塞方式写入内容总是一个好主意...但是...当您的操作需要几毫秒才能完成时,您应该使用回调???

想象一下 API 调用,例如 https://api.foo.com/v1/bar/baz ,被路由到一个函数,该函数从 NoSQL 引擎获取快速响应,将响应格式化为 JSON,然后将其放回到浏览器上。

在这种情况下,您应该使用回调吗?编写此代码是为了扩展到数百个并发请求。

谢谢!

最佳答案

即使您的操作需要几毫秒才能完成,并且您将使用同步实现(例如 - readFileSync 与 readFile - 这是异步的) - 您提到的所有其他并发请求都必须等待同步操作完成。

换句话说,如果您有选择,如果您的目标是编写可扩展的解决方案,则应始终使用非阻塞实现。

纯同步操作的合适场景是在应用程序启动时加载配置,之后您应避免任何可能阻塞事件循环的长操作。

关于node.js - 是否编写node.js api回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20035474/

相关文章:

amazon-dynamodb - 对流层 DynamoDB 生存时间规范

json - 使用 Mean Stack 中的 REST API 更新 JSON 中的子数组

java - mongoDB 将数据添加到没有 _id 字段的集合

node.js:来自 child_process 的 console.log

node.js - Mongoose 模式方法是 "not a function"

mongodb - 在 MongoDB 中,如何安全地删除包含空数组的文档?

amazon-web-services - 如何通过主 ID 以外的列从 DynamoDB 检索数据

php - DynamoDB 本地基本 PHP 设置

javascript - jsPerf.com Chrome 的 node.js 基准测试结果是否可靠?

eclipse - 使用 Eclipse 远程开发 Node.js 应用程序