Articles of 循环

callback方法while循环javascript

我想在这样的while循环中使用callback函数: do { Methodwithcallback(..function () { //do something }); } while (); function()不会被调用,但它没有loop工作。 该方法需要一些时间来执行,我想在方法完成后重复loop 。 为什么方法在loop被忽略? 我正在使用Node.js

MongoDB / NodeJS:每个variables的最大连接数/数据库创build

我需要你的帮助,使用mongodb允许的最大连接数。 我得到这个错误: AssertionError [ERR_ASSERTION]:null =='MongoError:write EPIPE' 乍一看,我想到了这个SO解决scheme,并增加conf中的最大连接variables。 文件。 但是后来我想,这很愚蠢,我不需要这么多的连接,我应该能够限制这个数字,以免超载我的服务器,而且我实际上find了另一个SO解决scheme 。 所以我继续试图找出如何创build一个新的数据库每个variables的实例,因为这是我想要实现的,并在NodeJS驱动程序文档中find这个。 为MongoDB 。 我的代码基本上循环2个不同的数组。 首先: ccxt.exchanges (大约30项),然后pairs (4项),我创build一个新的连接每个数组的迭代…不知道如果我很清楚,但是这里的代码: var _ = require("lodash"); var ccxt = require("ccxt"); var MongoClient = require("mongodb").MongoClient, assert = require("assert"); let pairs = ["ETH/EUR", "BTC/EUR", "LTC/EUR", "BCH/EUR"]; let delay = 1200; // NOTE: Server initiation: setInterval(function() { ccxt.exchanges.forEach(r => { let exchange […]

Node.js链接与MySQL的循环承诺

我正在尝试将一个非关系数据库变成一个关系数据库。 所以我从没有唯一ID的数据开始。 我需要从一个SQL调用循环中通过这些行得到结果,并且对于每一个,使用第一个结果的一部分执行SQL SELECT,然后使用下一个结果执行另一个SQLselect,然后使用来自第一个最后的查询。 我正在使用Node.js和ES6承诺保持一切顺序,但我似乎失去了一些东西。 实际上,我正在尝试执行额外的SQL调用,并且在第三个查询中也使用了这个结果,但是我正在简化它,只是让一个调用进入另一个调用。 也许一些代码将帮助显示我正在尝试做什么。 这是我的查询类返回承诺: var mysql = require('mysql'); class Database { constructor() { this.connection = mysql.createConnection({ host: "localhost", user: "root", password: "root", database: "pressfile" }); } query(sql, args) { return new Promise((resolve, reject) => { this.connection.query(sql, args, (err, result, fields) => { if (err) return reject(err); resolve (result); }); }); } […]

为什么我的JS循环覆盖在我的对象以前的条目?

所以我有一个对象,我在nodejs中使用。 它看起来像这样: for(var i = 0; i < x.length; i++) { var sUser = x[i]; mUsers[sUser.userid] = CreateUser(sUser); ++mUsers.length; } 所以我从外部来源提取信息,并将其分解为一个数组,其中包含了这个实例: [{ name: 'Michael Lovesllamas Lankford', created: 1338420951.11, laptop: 'pc', laptop_version: null, userid: '4fc6aed7eb35c14ad6000057', acl: 0, fans: 1, points: 5, avatarid: 34 }] 等等。 所以信息在上面的函数中作为x传递。 global.mUsers = {length:0} global.UserBase = { userid: -1, name: "noidea", […]

使用node.js +asynchronous模块从同步callback创build同步循环

stream行的node.js模块asynchronous包括集合和控制stream程的function,其中一些版本可以并行或串行操作。 但是其中我无法find构build一个串联循环的方法。 我试图做同样的这个伪代码: forever { l = getline(); if (l === undefined) { break; } else { doStuff(l); } } 如果我想所有调用getLine()并行调用,我可以使用async.whilst 。 如果我想迭代一个数组而不是像for或while循环那样使用async.eachSeries 。 我能用什么来获得控制stream中的series行为而不是集合迭代?

JS闭包,Redis,循环,asynchronous::空数组

我放弃了这一点。 可能一些明智的stackoverflow僧侣请修复我的错误? 代码是自我解释。 客户端发送房间名称,服务器执行redis查找并将有效房间推送到arrays。 在添加所有房间之后,该列表应该被发射到客户端。 问题是closures,asynchronous等基础。 我理解这个问题,但不能得到解决方法,因为数组需要保留在函数内。 棘手。 码: function roomList(socket){ var roomlist = [], rooms = getRooms(), p = /pChannel_/; redis.select(7, function(err,res){ for (var k in rooms){ if(rooms[k] != '' && p.test(rooms[k])){ var key = 'channel:'+rooms[k]; redis.hgetall(key, function (err, reply) { if(reply){ var c = io.sockets.manager.rooms[rooms[k]]; roomlist.push( Array(reply['name'],c.length,reply['icon']) ); } else { console.log('nothing found'); […]

如何使一个node.js应用程序在closures套接字后保持监听?

我试图build立一个node.js应用程序,可以接收连接,并且一旦套接字结束,仍然在监听端口9001。 我怎样才能做到这一点? 这里是我当前的代码(它不会在socket.end()之后closures,但不会接受任何其他连接): var net = require('net'); var mySocket; var server = net.createServer(function(socket) { mySocket = socket; mySocket.on("connect", onConnect); mySocket.on("data", onData); }); function onConnect() { console.log("Connected"); } function onData(command) { if (command == "exit") { console.log("Exiting"); mySocket.end(); } } console.log("Waiting for incoming connections"); server.listen(9001); 我试图添加另一个server.listen(9001); 在socket.end(); ,但我得到一个: Error: listen EADDRINUSE消息。 另外,这段代码是否能够同时接收来自不同地址的多个连接,并分别处理? 这是完整的代码。 当执行时,node.js接收来自Flash应用程序的4个命令,并正常工作(除了onConnect()函数似乎永远不会被调用)和“退出”。 命令正确closures套接字,但是如果我重新加载Flash应用程序,它不会连接到服务器 var […]

使用节点和mongoose将新的mongoDB文档从数组中取出的最好方法是什么?

我正在使用MeanJS,用户input每个需要创build一个新文档的对象列表。 同时,我需要创build另一个单独的文档,指向数组中的每个对象,并将每个对象链接回这个新文档。 所以最终的结果需要是模型“Q”的任意数量的文档,它们与模型“S”的另一个文档相关联。 我试图这样做的原因是让用户创build一个问题的调查。 每个问题都将是自己填写“调查”的对象(作为一个属性,将包含这些问题ID的列表)。 S = {"_id": 0, "Qids": [ObjectId("1"), ObjectId("2"), ObjectId("3"), ObjectId("4")]} Q1 = {"_id": ObjectId("1"), "Sid": ObjectId("0")} Q2 = {"_id": ObjectId("2"), "Sid": ObjectId("0")} Q3 = {"_id": ObjectId("3"), "Sid": ObjectId("0")} Q4 = {"_id": ObjectId("4"), "Sid": ObjectId("0")} 我的问题:我似乎无法做到这一点没有遇到callback的问题。 有人可以给我一些build议吗? 这就是现在的样子: 客户端: $scope.Qlist = [Q1, Q2, Q3, Q4]; $scope.S = {}; $http.post('/S', $scope.S).success(function(data){ var req_obj […]

在javascript中维护for循环中的http请求的顺序

我正在尝试使用node.js express和mongoose(MEAN堆栈)保存MongoDB中的对象数组。 但是,当我在数组中的每个项目的前端进行http post请求时,它们不会按顺序显示在后端。 以下是我在前端的内容: $scope.postThenPost = function() { $http.post('/collection', $scope.doc).success(function(data){ for (var i = 0; i<$scope.array.length; i++) { var req_obj = { thing: $scope.array[i] }; $http.post('/collection2', req_obj); }; }; }; 并在后端,expression运行这个张贴到/ collection2: exports.create = function(req, res) { var q = new q(req.body.thing); q.save(function(err) { if (err) { return res.status(400).send({ message: errorHandler.getErrorMessage(err) }); } else […]

如何用object params请求保存多个数据,一次在sails js中

目前,我正在为一个移动应用程序开发一个带有js + mongoDB的sails API。 我想保存从移动应用程序发送的多个数据,我通过控制器函数中的req参数(作为对象)捕获它。 我的控制器代码的一些部分如下所示: var contactData = req.allParams().Contact; looping.. { Contact.create(contactData[index]).exec(function addContact(err,createdContact){ }); } 你能告诉我如何实现循环以保存多个联系人数据到数据库? 问候,argi danu。