Articles of async.js

nodejs循环async.parallelcallback

我正在testing一个由async.parallel函数调用的callback函数:如果callback函数使用参数或者没有,那么执行stream程似乎是不同的。 var async = require("async"); function makeTestFunction(i) { return function(callback) { console.log('test Function: '+i); return callback(); }; } function test(callback) { var endFunctions = function(i) { console.log('ending: ' + i); return callback(); }; var testFunctions = []; for (var i=0; i < 3; i++) { console.log('loop: '+i); testFunctions.push(makeTestFunction(i)); } return async.parallel(testFunctions, endFunctions ); } test( […]

节点MySQL以最快的速度执行多个查询

哪个是最快速的方法获取到MYSQL的查询,然后返回到输出: console.log('查询完成',结果)“ 有没有更好的方法? 请解释你的答案! 谢谢! 方法1: var connection = mysql.createConnection({multipleStatements: true}); connection.query('SELECT ?; SELECT ?', [1, 2], function(err, results) { if (err) throw err; console.log('queries done', results); }); 方法2: const Db = mysql.createPool({ connectionLimit: 7, dateStrings: true, multipleStatements: true }); Db.getConnection(function(err, connection) { if(err) console.log(err); connection.query(` SELECT "1" AS "first"; SELECT "2" AS "second";`, function(err, […]

NodeJSasynchronous – 即使有一些失败,仍继续执行多个http请求

我试图做出多个HTTP请求并累积,使用以下代码在NodeJS中显示结果: const async = require('async'); const request = require('request'); function httpGet(url, callback) { const options = { url : url, json : true }; request(options, function(err, res, body) { console.log("invoked") callback(err, body); } ).on('error', function(err) { console.log(err) }); } const urls= [ "http://1.2.3.4:30500/status/health/summary", "http://5.6.7.8:30505/status/health/summary" ]; async.map(urls, httpGet, function (err, res){ if (err) console.log(err); else console.log(res); […]

如何使用expressjs和mongodb使用promises /callback?

我真的很担心承诺和asynchronousJavaScript工作。 我想在/ user上执行一个GET并查询mongo,以便第一个查询的结果以某种方式处理以形成第二个查询的查询,并且该查询的结果是第三个查询的查询。 基本上我想通过res.send(result)将最终的mongo结果的结果发送回客户端。 这样做的正确方法是什么,以便客户端获得第二个嵌套的mongo查询结果200 OK? app.get('/user', function (req, res, next) { var query = {"isRegistered": false } db.collection('users', function (err, collection) { collection.find(query).toArray(function (err, result) { if (err) { console.log(err) } else { if (result.length > 0) { // do some random processing var randomUser = result[Math.floor(Math.random() * result.length)] // do ANOTHER db query […]

如何连接各种mongoose结果到一个JSON数组显示在DataTable上?

我需要连接不同的mongoose查询结果到一个数组。 我有一个像branch_data一样的mongoose结果 [ { _id: 59a270e53abb8426805b97fb, client_name: 'Client 1', branch_name: 'Branch 1', router_serial: '111111111', data_card_serial: '11111111', sim_number: '11111111111', modem_serial: '11111111111', idu_serial: '1111111111', dispatch_date: '08/27/2017', status: 'installed', action: 'primary();', __v: 0, ir_report: '201708271241491111111111.xlsx', notes: '111111111111111111', ip_address: '1111111111111', installation_date: '08/01/2017' }, { _id: 59a274045f867701fc07792e, client_name: 'Client 2', branch_name: 'Branch 2', router_serial: '2222222222222', data_card_serial: '22222222', sim_number: '2222222222222', modem_serial: […]

asynchronous等待node.js跳过第二个等待语句保存mongodb

我正在使用node.js ES6中等待asynchronous… async insertIngot(body, callback) { console.log('*** ItemsRepository.insertIngot'); console.log(body); const data = await this.getItemsTest(); console.log('*** getItems ok'); items = data.items; let item = new Ingot(); item.ingotName = body.ingotName; item.formulaName = body.formulaName; item.items = items; await item.save(); return item; } 第一个等待工作,然后跳过代码的其余部分,并引发错误: (node:16612)DeprecationWarning:Mongoose:mpromise(mongoose的默认承诺库)已被弃用,请插入自己的承诺库: http ://mongoosejs.com/docs/promises.html

从多级JSON(使用async.js)recursion创build目录

定义 File#createDirectoriesFromJSON (json, cb); json:JSON对象。 cb:function。 参数:error(Error),created(布尔值,如果至less有一个目录已经创build,则为true)。 假设File类包含一个名为_path的属性,其中包含一个目录的path。 用法 var json = { b: { c: { d: {}, e: {} }, f: {} }, g: { h: {} } }; //this._path = "." new File (".").createDirectoriesFromJSON (json, function (error, created){ console.log (created); //Prints: true //callback binded to the File instance (to "this"). Hint: cb […]

奇怪的mongoose行为 – 文件不会保存到数据库中

在下面的代码中,我尝试用一​​些testing数据填充我的开发数据库。 我想先删除所有文件,然后添加新的testing文件: var mongoose = require('mongoose') , Plan = mongoose.model('Plan') , Async = require('async') Async.series([ function(callback){ // delete all records Plan.find(function(err,docs){ for (d in docs) Plan.remove(d, function(err) { if (err) console.log("error removing records " + err) }); }); callback(); }, function(callback){ var planArray = [ {title: 'Plan A', body: 'Restaurant Financial Plan'}, {title: 'Plan B', […]

如何在Model.find Sailsjs中循环

祝你有个好日子,有人可以build议我使用哪种asynchronous函数吗?在我的情况下,我需要输出每个组的第一个成员。 ***注意这只是我的程序stream程的一个例子。 /* Grouplist groupmember Id | name id | name | group 1 | group1 1 | John | 1 2 | group2 2 | James | 1 3 | group3 3 | Paul | 3 4 | Angel | 2 5 | Anne | 2 6 | Jane | 3 looking for output […]

从一个ID数组到一个名称数组(mongo,nodejs)

我一直在这个几个小时左右…感谢您的任何帮助。 我有一个“用户”集合,每个用户有一个_id和一些名字( Username名, FirstName , LastName )。 我也有一个“组”集合,每个组都有Members ,这是一组用户的_id 。 起初,我想要一个简单的函数,接收一个ID数组,并把它变成一个很好的格式的string数组: FirstName + " " + LastName + " (" + Username + ")" 。 所以我为此做了一个简单的说明: var ans = []; for (i=0; i<arrOfIds.length; i++) { users.find({"_id": ObjectID(arrOfIds[i])}, function(err, result){ ans.push = result.FirstName + result.LastName + "(" + result.Username + ")"; }); } 但是因为mongo是asynchronous的,所以不起作用。 经过一番阅读,我安装了asynchronous ,我认为将解决我的问题。 […]