Articles of asynchronous

Node.js:如何限制请求列表?

我正在写一个node.js应用程序,它需要从提供程序的页面列表中获取一些数据: var list = [ { url: 'http://www.example.com/1' }, { url: 'http://www.example.com/2' }, … { url: 'http://www.example.com/N' }, ]; 目前我正在使用async.each ,这很好地工作: async.each( list, // 1st param is the array of items function(elem, callback) { // 2nd param is the function that each item is passed to request(elem.url, function (error, response, body) { if (!error && […]

在sails.js中返回asynchronous响应

一些数据库查询后,我的应用程序需要返回一个JSON响应。 伪代码(使用async ): async.forEachOf(sails.config.site.regions, function (regionData, slug) { obj['regions'][slug] = { 'slug': slug, 'name': regionData.name, }; }, function (err) { if (err) { res.json({ 'error': true, 'message': 'Error when retrieving data from the DB' }); } else { res.json(obj); return; } }); 风帆挂起,因为没有任何回应似乎从服务中返回。 我试图将其转换为Promise(请参阅此答案 ),但它也不起作用。 我怎样才能做到这一点?

节点原型和asynchronous

当我调用log()时,如何在read()中返回asynchronous函数的值? 我知道代码可能不是100%正确的,但我希望你能明白。 我谷歌search,但仍然有点困惑。 希望有人能帮助我。 function Whatever(directory) { this.source = 'someDir'; } Whatever.prototype.read = function (dir) { dir = dir || this.source; recursive(dir, ['.*'], function (err, files) { if (err) throw err; return files; }); }; Whatever.prototype.log = function() { console.log(this.read()); };

哪一个使用asynchronous或callback

我正在使用sailsjs框架在nodejs中开发一个简单的应用程序。 我的任务是创build一个API端点,我必须从数据库validation传入的参数是否有效。 如果input参数无效,那么如果input参数有效,我会返回JSON格式的错误,然后我需要做一些计算,然后保存到数据库,然后发送一个邮件,并以JSON格式给出成功响应。 混乱是如果我使用asynchronous如何强制asynchronous不input参数无效时调用下一个函数。

Node.js mongodb与callback的麻烦

所以我试图创build一个注册路线,检查用户是否先存在,我有一个单独的函数中的数据库调用,当它完成时需要返回true或false 。 问题是我不是很熟悉callback和整个asynchronous的东西,我已经search了一切似乎并没有工作不断给我。 TypeError: callback is not a function 这是我的代码任何帮助或方向将不胜感激。 function pullUserFromDatabase(username, callback) { console.log(username); //for debug mongodb.connect(url, function(err, db) { if(err) { console.log("didn't get far" + err) //for debug } var collection = db.collection(username); collection.findOne({username}, function(err, item) { if(err) { console.log("nope it broke" + err) //for debug } else { console.log("it worked" + JSON.stringify(item)) […]

将parameter passing给Javascript / NodeJs中的预定义callback

我试图用bcrypt扩展我的简单的NodeJs后端的login方法。 我的问题是,我现在需要通过散列步骤传递uservariables。 我当前的方法是这样的 – 自然, user在onPasswordHashed范围内是未定义的: signin : function(req, res, next) { step ( function findUser() { User.findOne({ "email": req.body.email }, this); }, function onResultReceived(error, user) { if (error) { … } else { if (user) { bcrypt.compare(req.body.password, user.password, this); } else { … } } }, function onPasswordHashed(error, hash) { if (error) { … […]

由于asynchronousnodejs,无法将数据添加到数组中

api.get('/getfavourites',function(req,res) { var userid = req.param('userid'); array = []; User.findById({_id: userid}, function (err, users) { if (err) { res.send(err); return; } else { var i; var length = users.favouriteid.length; for (i = 0; i < length; i++) { var temp = {eid: users.favouriteid[i].eventid}; Event.findById({_id: temp.eid}, function (err,events) { if (err) { res.send(err); return; } else […]

async.each中的asynchronous函数没有被触发

任何人都可以解释下面的控制台日志打印的顺序吗? 我正在使用asynchronous版本1.4.23。 响应包含两个项目。 输出:标签1 标签2 标签2 标签4 标签3 标签3 async.parallel([ function(callback){ detailsData.list({}, function(err, response) { if (!err) { console.log("label 1"); async.each(response, function(item, cb) { console.log("label 2"); itemList.getData(item, function(err, response) { console.log("label 3"); } cb(err); }); }); } callback(err); }); }, function (callback) { somefunction(); }], function (err) { console.log("label 4"); } 为什么在标签4之前不打印标签3?

节点的JS MongoDB不保存

我是新的节点JS,所以我可能会错过一些相当明显的东西。 我最近一直试图用mongoose把一些数据保存到数据库中,但是我一直没有成功。 尽pipe服务器告诉我它被保存,但是我的数据库中没有任何数据的跟踪。 app.js(靠近底部的代码的相关部分) /* REQUIRES */ var express = require('express'); var mongoose = require('mongoose'); var bodyParser = require('body-parser'); var ejs = require('ejs'); var moment = require('moment'); var app = express(); var router = express.Router(); var port = 80; moment().format(); /* MONGOOSE CONNECT & MODEL */ mongoose.connect('mongodb://127.0.0.1:27017/giveaway'); var Giveaway = require('./models/giveaway'); var Entry = require('./models/entry'); […]

NodeJS用knex迭代速度太快

我在查询(knexjs.org)的for循环有一些困难。 让我们开始如何遍历我的数组。 我的数组看起来像这样: [ { module_id: 9, able: '1', will: '1' }, { module_id: 9, able: '1', will: '1' }, { module_id: 2, able: '1', will: '1' }, { module_id: 2, able: '1', will: '1' }, { module_id: 4, able: '1', will: '1' }, { module_id: 4, able: '1', will: '1' }, { module_id: 1, […]