Tag: for循环

如何使node.js和mongoDB中的循环同步运行

这是我第一次使用Node.js,并且遇到了问题。 我从API获取一些数据,并将它们存储在一个数组中。 然后,我正在做一些MongoDB的查询,知道我在该数组上的数据是否在数据库中。 我想为每个数组的出现使用一个for循环,但是当我尝试调用MongoDB时,for循环不断地增加计数器,而不用等待查询和相对响应的结束,并且我只获取最后一次出现的数据(反复)。 我的代码有一部分,而且在最后一次出现的时候,我总是得到相对于控制台的'结果'(例如,如果我期望像'1,2,3,4,5'这样的东西,我有'5 5 5 5') 我怎样才能确保for循环以正确的方式工作? 感谢帮助。 for ( counter = 0; counter < array.lenght; counter ++) { MongoClient.connect(url, function (err, db) { var query = { name: array[counter] }; db.collection("collectionName").find(query).toArray(function (err, result) { // Check if 'query' value exist in the database, if yes do some stuff, otherwise do others stuff […]

Node.js Jade:嵌套的'循环不工作

使用Node.js中的Jade模板引擎,我试图使用嵌套的JavaScript来填充一个包含元素的表格。 这是我想要实现的: <tr class="darkTableRow"> <td class="vcTextValue">value: 0</td> <td class="vcTextValue">value: 1</td> </tr> <tr class="darkTableRow"> <td class="vcTextValue">value: 0</td> <td class="vcTextValue">value: 1</td> </tr> <tr class="darkTableRow"> <td class="vcTextValue">value: 0</td> <td class="vcTextValue">value: 1</td> </tr> 我正在使用的Jade代码是这样的: – for (var g = 0; g < GPU_count; g++) tr.darkTableRow – for (var v = 0; v < 2; v++) td.vcTextValue= 'value: ' + […]

节点 – 周期内的等待请求响应

真的,我尝试了所有的方法,但是我找不到解决scheme。 由于没有英文,我正在使用谷歌翻译,我会连续多次解释相同的东西。 1º尝试For循环将等待所有内容完成 2º我试图知道,外部networking请求的城市正在行动。 就像很多城市一样,一旦我检查了第一个城市,我就需要打破这个循环。 3º我需要去一个JSON,并在运行时执行一个动作,等待它完成后。 然后随时离开周期。 我已经testing了几个代码,但为了更好的理解,在这里介绍。 ——————————————————————— var city = [ {'city':'madrid'}, {'city':'barcelona'}, {'city':'valencia'}, {'city':'malaga'} ]; var vBreak = 0; for (i in city){ request('example.there-city.com/' + city[i].city ,function (error, response, read) { if (read == 'OK') { vBreak = 1} }); if (vBreak == 1){ break;} } var city = [ {'city':'madrid'}, {'city':'barcelona'}, […]

for循环仅迭代一次

我有一个对象的客户端数组,所以我使用for循环来遍历它我有clients.lenght = 2,但它只是迭代。而我没有variables范围的问题在这里。 只是不明白为什么会发生。 码 socket.on('idleDisconnectAllClient', function(receivedData) { LOG("idleDisconnectAllClient"); var clientIndex = findMainIndexByDataBaseID(receivedData.dataBaseID); if (clientIndex != -1) { console.log('clients lenght', clients[clientIndex].data.length); for (var i = 0; i < clients[clientIndex].data.length; i++) { var client = clients[clientIndex].data[i]; client.disconnect(); console.log('client ' + i); } } }); 安慰 2016-03-29 04:13:01 – idleDisconnectAllClient clients lenght 2 client 0

与节点一起下循环

在节点js我有一个函数,迭代通过数组来填充另一个元素。 有些时候,某些不确定的东西,怎么可能呢? 例如,我得到“不能读取未定义的属性formatPrice”。 节点上的for循环出了什么问题? for (var i = 0; i < 10; i++) { //console.log(JSON.stringify(item.SmallImage)); message.attachment.payload.elements[i] = { "title":items[i].ItemAttributes.Title, "image_url": items[i].LargeImage.URL, "subtitle":items[i].ItemAttributes.ListPrice.FormattedPrice, "default_action": { "type": "web_url", "url": "https://www.google.it", "messenger_extensions": true, "webview_height_ratio": "tall", "fallback_url": "https://www.google.it" }, "buttons":[ { "type":"web_url", "url":"https://www.google.it", "title":"View Website" },{ "type":"postback", "title":"Start Chatting", "payload":"DEVELOPER_DEFINED_PAYLOAD" } ] } //sendMessage( senderId, {text: item.ItemAttributes.Title+" PREZZO**:"+item.ItemAttributes.ListPrice.FormattedPrice}); }

如何在vo.js循环中产生多重承诺?

基于这个例子 – vo / examples / 9-pipeline-composition.js ,我将如何return yield for this for循环的每个迭代的承诺? 目前循环运行一次,并产生一个单一的承诺。 function * get (urls) { for (var i = urls.length – 1; i >= 0; i–) { console.log(urls[i]) return yield http.get(urls[i]) } } function status (res, params) { return res.status } let scrape = vo(get(['http://standupjack.com', 'https://google.com']), status) vo([ scrape ]) .then(out => […]

在callback期间获取正确的循环值

我想轮询多个网站,但是当我尝试打印数组索引它不会返回真正的索引。 var request = require('request'); var opt=['https://dev.twitter.com','https://developer.foursquare.com/','https://developers.facebook.com']; function req() { for(i=0;i<opt.length;i++) { request(opt[i], function (error, response, body) { if (!error && response.statusCode == 200) { console.log("Yes "+i) } else console.log("No"); }) } } setInterval(req,3000); 这是什么问题?

如何遍历对象并返回每个项目的mongoDB条目?

我在循环选区数据的对象方面遇到困难,在MongoDB中查找现有的条目并与它们做某些事情。 它总是成为一次又一次地在数据库中传递的同一条目。 我认为这是一个范围和时间问题。 我的代码: for (key in jsonObj) { var newConstituent = new Constituent({ name : jsonObj[key]["Name"], email : jsonObj[key]["Email"], social : { twitter: { twitter_handle : jsonObj[key]["Twitter handle"], twitter_id : jsonObj[key]["User id"], timestamp : jsonObj[key]["Timestamp"] } } }); console.log(jsonObj[key]["Email"]); // this is fine here! Constituent.findOne({ email : jsonObj[key]["Email"] }, function(err, constitutents){ console.log(jsonObj[key]["Email"]); // here […]

Node.js / Javascript – 等到方法完成

我正在写一个蒸汽交易机器人,但我有一个问题,for循环不会等到for循环内部的方法完成。 所以代码不能正常工作。 for (i = 0; i < offer.itemsToReceive.length; i++) { console.log(offer.itemsToReceive[i].market_hash_name); community.getMarketItem(appid.CSGO, offer.itemsToReceive[i].market_hash_name, function(err, items) { if (err) { Winston.error("Error getting Marketprice"); } else { var cacheItemPrice = items.lowestPrice; totalValue += items.lowestPrice; Winston.info("Item " + offer.itemsToReceive[i].market_hash_name + " is " + items.lowestPrice + " Cents worth"); if (items.lowestPrice <= minValue) { minValue = items.lowestPrice; […]

循环浏览.json对象

我有一个.JSON文件充满了类似这样的数据: [ { "scan_type": "nexpose", "date_time": "2016-07-18 18:21:44", "source_address": "1111", "source_lat": "22.555260", "source_lng": "-15.084420", }, … ] 我写了一个脚本,将这个数据转换为一个对象,这里是我的脚本: let obj = require('./dataOut.json'); var fs = require('fs'); //json variables let scan_type = obj[0].scan_type; let date_time = obj[0].date_time; let source_address = obj[0].source_address; let source_lat = obj[0].source_lat; let source_lng = obj[0].source_lng; //source contains the new object var source […]