nodejs,发电机表获取操作callback或asynchronous

伙计们,我正在编写一个从DynamoDB表中获取结果的API,并将JSON放回浏览器。

下面的代码工作,并返回所需的结果…但是,在阅读了asynchronous和callback后,它变得重要,我知道我是否应该以另一种方式写这个? 以下几百个并发的API调用程序能够很好地扩展吗?

这段代码似乎没有使用callback。 它是asynchronous的吗?

var restify = require('restify'); var AWS = require('aws-sdk'); AWS.config.update({region: 'us-east-1'}); var db = new AWS.DynamoDB(); function myFunction(req, res, next) { var params = { TableName : 'myTable', KeyConditions : { "number" : { "AttributeValueList" : [ { "S" : req.params.simethingid } ], "ComparisonOperator" : "EQ" } } } db.query(params, function(err, data) { if (err) { console.log(err); } else { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain; charset=UTF-8'); res.send(JSON.stringify(data, undefined, 2)); console.log(JSON.stringify(data, undefined, 2)) res.end(); } }); return next(); } server.get('/searchme/:somethingid', myFunction); 

谢谢!

您显示的代码是asynchronous的,正在使用callback。 调用db.query的函数(err,data){…}是callback函数。

注意,在那个代码中,你正在传递一个函数定义到db.query() – db.query将会调用这个函数,因此调用这个名字。

这个代码是否能“与数百个并发的API调用者一起扩展”的问题在这个论坛中是无法回答的。 如果不知道有关您的环境的大量细节,很难/不可能给您一个很好的答案。