Javascript node.js异步阵列的安全性

Javascript node.js异步阵列的安全性,javascript,node.js,Javascript,Node.js,我想将文档保存到RAM,然后保存到mongodb。这个密码安全吗 Mongodb服务器在欧盟,应用服务器在美国。每秒向基础添加2-3k项目。我想减少连接的数量。我的问题:有可能在保存到数据库的过程中修改变量(在“添加”中)这取决于天气mongodb.insert(文档)一次性执行所有元素的操作。如果它在每个插入的元素之后触发回调,那么代码就不安全(因为数组将在第一个插入的元素之后被清除) 但是,如果所有元素的操作都是同步的,那么您的代码应该是安全的。在哪些方面是安全的?顺便说一句,你为什么不直接

我想将文档保存到RAM,然后保存到mongodb。这个密码安全吗


Mongodb服务器在欧盟,应用服务器在美国。每秒向基础添加2-3k项目。我想减少连接的数量。我的问题:有可能在保存到数据库的过程中修改变量(在“添加”中)

这取决于天气
mongodb.insert(文档)一次性执行所有元素的操作。如果它在每个插入的元素之后触发回调,那么代码就不安全(因为数组将在第一个插入的元素之后被清除)


但是,如果所有元素的操作都是同步的,那么您的代码应该是安全的。

在哪些方面是安全的?顺便说一句,你为什么不直接插入它们呢?不。数组从未被清除,它被替换为一个空数组。@Sannin,是的,你的最新版本的代码应该是fine@Bergi:array.length=0;更好?:)谢谢@三宁:我指的是米海的回答,这是错误的。您可以使用
items=[]创建初始版本非常好。只有当你使用了items.length=0时,你才能得到mihai在回答中描述的问题。
var docs = [];

server.on('add', function(item){
    docs.push(item);
});

setInterval(function(){
    save(docs);
}, 3000);

var save = function(array) {
    var items = array.slice(0); // copy array
    array.length = 0; // clear array

    mongodb.insert(items, function(){
        // ...
    });
};