Tag: 同步

node.js – async.each数组项sorting顺序自动更改

我使用asynchronous库( https://github.com/caolan/async)node.js 。 当我使用async.each函数其工作正常,但它更改数组项目订单,所以我不能列出类别与一些sorting.. module.exports = { index: function (req, res) { var async = require('async'); var data = new Object(); data.title = ""; data.meta_keywords = ""; data.meta_description = ""; data.category = new Array(); bredcrumbs = new Array(); bredcrumbs[0] = {'text':'Home','link':'Link','active':false}; category_list = new Array(); categories = new Array(); async.waterfall([ function(callback){ Category.find({sort: 'name ASC'}).done(function(err,cat_data){ //console.log(cat_data); […]

mongodb查询里面有多个查询

在尝试根据mongodb上的另一个查询的结果进行查询时遇到问题。 我试图做一个初步的查询,然后对第一个查询的结果中的每一个做另一个查询。 我这样做的原因是因为我有两个不同的集合,我需要从一个集合中join一些数据与另一个集合的数据。 在一个SQL世界中,我可以很容易地使用JOIN来做到这一点,但是因为我在这个中使用了mongodb,所以我不能真正使用JOIN,所以我猜想在第一个查询的callback函数内部做一个for循环是要走的路。 这是我正在使用的代码… var resultSet = []; db.get('busstopcollection').find({id_bus_stop: parseInt(req.body.busstopid)}, function(e, docs){ if(e || docs.length === 0) { console.log("Sorry, wrong id."); return e; } for(var m=0; m<docs.length; m++){ var auxRes = {}; auxRes.id_bus = docs[m].id_bus; auxRes.id_bus_stop = docs[m].id_bus_stop; auxRes.coord_x = docs[m].coord_x; auxRes.coord_y = docs[m].coord_y; auxRes.id_bus_variation = docs[m].id_bus_variation; db.get('buscollection').find({id_bus: parseInt(docs[m].id_bus)}, function(e, busDocs){ auxRes.s_origin_description = busDocs[0].s_origin_description; […]

node.js redis同步化

我想知道是否有可能用node_redis同步检索redis的信息 。 _.each(seeds, function(subseed, key, list){ client.smembers(subseed, function (err, replies) { retrieved = retrieved.concat(replies) }) }) client.quit(); console.log("start") console.log(retrieved.length) OUTPUT: start 0 10 所以它看起来像我需要以某种方式来达到时,它完成它的运行,或者在同步模式下运行smembers。 我怎么解决这个问题?

如何捕捉node.js中同步函数的错误?

在asynchronous函数中,我们可以简单地捕获callback中的错误。 例如 : asynchronous函数: fs.readdir(path, function(err){ //catch error ) 由于同步函数没有callback,我怎样才能捕捉错误? 同步function: fs.readdirSync(path); //throws some error 一种方法是使用try catch块: try{ fs.readdirSync(path); } catch(err){ //do whatever with error } 有没有其他方法可以做到这一点? 如果是,那哪一个更好?

使用ioredis为redis数据库增加id并将其分配给string

我在使用redis的博客上工作,并陷入了api级别。 我正在尝试做以下事情: MULTI INCR id SET post:{id} json_value //Stucked here SADD posts {id} EXEC 那么如何获得SET文章的ID:{id}? 我现在有下面的代码,这是不行的。 // Create post function cpost(json) { client.pipeline() .incr('id')) .set('post:' + client.get('id:post', function (err, results) { return results; }), json) .sadd('posts, client.get('id:post', function (err, results) { return results; })) // posts post .exec(function (err, results) { }); } 使用ioredis 任何想法如何获得身份证的价值?

node.js中的并行callbackUniverse?

我试图在node中实现shopify api,并且想要同步调用post请求,因为我想在发布后检索产品id并将其存储在数组中。 我正在使用一个名为deasync的库作为同步等待循环。 该脚本以前工作,突然停止工作。 当我login我的调用没有deasync循环时,我看到从shopify返回的响应,但是,当我运行我的脚本deasync循环,我的标识符保持空,deasync循环不断迭代。 我对node.js中的asynchronous请求比较陌生。 我的标识符variables的范围似乎是正确的。 我现在唯一可以想象的是,callback发生在一个并行的node.js宇宙中,与我的while循环分开。 任何帮助将不胜感激,thx! function postProduct(Store, product, variants) { var identifier = null; var post_data = { "product": product }; Shopify.post('/admin/products.json', post_data, function(err, data, headers) { identifier = { id: data.product.id, price: data.product.price, variants: variants }; }); while(identifier === null) { require('deasync').runLoopOnce(); } return identifier; }

nodejs同步调用:获取数据库callback,并将其parsing到前端

在我的NodeJS后端我有一个函数,我从sqlite数据库中获得一个值,我想把它发送到前端,但它总是说Object { msg: false }我想我需要一个函数,我可以做一个同步调用function。 我的代码: router.get('/', function(req, res, err){ var msg = " "; var uid = req.session.user; function printMsg(message){ msg = message; } db.getMsg(uid, printMsg); if(err){ res.send({msg : "No message available"}); } else{ res.send({msg: msg}) } }); 谁能帮我? 提前致谢。

制作和使用NodeJS的soap客户端同步

当我向服务器发送一个HTTP请求时,使用NodeJs的当前soap客户端来调用soap服务函数。 问题是请求在soap服务调用完成之前返回,因此没有返回数据。 这里的问题是,逻辑是asynchronous的,但我需要使其同步。 请亲切指导我到正确的解决scheme。 function soap_get_items(req,res){ var resp = []; var soap = require('soap'); var url = 'http://example.com/example.wsd?singleWsdl'; var args = {name:"N.Hillary"}; soap.createClient(url, function(err, client) { client.exampleSoapFunction(args, function(err, result) { resp = result; }); }); json_resp = JSON.stringify(resp); res.end(json_resp); }

在节点Js中使用asynchronousfunction而不是使用asynchronousfunction有什么好处?

现在我遇到了一个区分asynchronous函数和同步函数的文章。 从我对不同例子和解释的理解中,同步函数被阻塞,而asynchronous函数不被阻塞。 但是我想知道在使用中是否有任何性能优势?

同步node.js对象

我正在使用一个variables,一次被许多函数使用。 我需要同步它。 我该怎么做? var x = 0; var a = function(){ x=x+1; } var b = function(){ x=x+2; } var c = function(){ var t = x; return t; } 这是我的代码的简化逻辑。 为了提供更多的信息,X和我一次只能使用一个函数的mongoDB对象一样好。 还有3个函数就像REST API调用,所以有可能他们会被同时调用。 我需要编写getX函数来pipe理locking和解锁。 有什么build议么?