node.js如何处理多个请求?

时间:2017-10-17 00:35:31

标签: node.js

我有一个node.js代码,它基本上在UDP套接字上侦听来自网页的不同请求,并调用一个函数来查询DynamoDB并将结果发送回相应的调用网页(根据远程IP和端口)识别每个请求。)

代码如下所示:

function qryDynamoDB(qry_condition, remoteIP, remotePort) {

    var qryParams = {
        TableName: "customer1",
        KeyConditionExpression: "qry_condition",
    };

    docClient.query(qryParams, function (err, data) {
        if (err) {
            console.log(err);
        } 
        else {
            var qry = JSON.stringify(data);
            server.send(qry, 0, qry.length, remotePort, remoteIP, function (err, bytes) {
                if (err) {
                    throw err;
                }
            });
        }
    });
}

// UDP Server starts

server.on('listening', function () {

    var address = server.address();
    console.log('UDP Server listening on ' + address.address + ":" + address.port);
});

server.on('message', function (message, remote) {

    // do a query
    qryDynamoDB('qry_condition', remote.address, remote.port);
});

我的问题是这个代码在多个(几乎)同时请求方面是安全的。例如,我想知道Request#1是否到达并且代码执行查询,然后Request#2也会到达并且代码发送 2nd 查询。但如果出于某种原因,最后一个查询首先完成(例如 qry 1 qry 2 更复杂) ,这个结果会被发送回正确的远程IP和端口(来自发送Request#2的网页)而不是第一个?

我不了解node.js的内部结构及其处理方式,所以我担心会发生这种情况,然后将结果混合起来。

我将不胜感激任何澄清。

0 个答案:

没有答案