Express js使用来自mongodb的值到查询外部
我是新的快速js和节点js。 我想知道是否可以做到这一点。
第一件事我试图得到1查询计数。
第二我查询收集login。 循环并格式化并使用ID获取名称值。
在count1上我得到了undefined,我发现它在json响应中被忽略。
如何将查询返回到查询之外?
router.post('/logmein', function(req, res, next) { var email = req.param('email'); var password = req.param('password'); var count1; MongoClient.connect(MongoUrl, function(err, db) { if (err) return; db.collection('users').count({email: email,password: md5(password)}, function(err, count) { count1 = count; }); db.collection('login').find({email: email,password: md5(password)}).toArray(function(err, results){ console.log(results); // output all records }); //use results /* foreach each results format with other info var new_array; */ res.json({"success": true,"count":count1,new_array: new_array}); }); });
asynchronous问题,你必须更多地看待它。 使用asynchronous模块 ,然后您将能够并行地触发查询。 最后,你将在最后的callback中得到结果。 这个片段将解决您的问题:
var async = require('async'); router.post('/logmein', function (req, res, next) { var email = req.param('email'); var password = req.param('password'); var retResults; var count1; MongoClient.connect(MongoUrl, function (err, db) { if (err) return; async.parallel([ function(callback){ db.collection('users').count({ email: email, password: md5(password) }, function (err, count) { return callback(err, count); }); }, function(callback){ db.collection('login').find({ email: email, password: md5(password) }).toArray(function (err, results) { return callback(err, results); }); } ], function(err, results) { if (err) { // @todo: handle the error } count1 = results[0]; retResults = results[1]; //use results /* foreach each results format with other info var new_array; */ res.json({ "success": true, "count": count1, new_array: new_array }); }; }); });
你需要像async.parallel这样的东西来控制nodejs应用程序的asynchronousstream
async.parallel([ function(callback){ ... }, function(callback){ ... } ], function(err, results) { // optional callback };
- parsingJSON并在Angular中显示数据
- 在连接mongo和mongoose的mongodb中存储会话
- 创build反应应用程序有错误的“你需要启用JavaScript来运行这个应用程序”。
- 如何添加login身份validation和会话到ReactJS React路由器和Redux与MongoDB + NodeJS Express?
- 弃用警告:未处理的承诺拒绝已被弃用
- NodeJs,Expressjs与EJS到Android doens't工作在PhoneGap?
- 如何让Stylus在CoffeeScript中使用Express和Connect工作
- 使用相对URL从NodeJS / Express实例执行Python脚本
- 你可以从expressjs应用程序调用一个shell脚本?