【发布时间】:2017-05-28 10:37:51
【问题描述】:
当我想在 ejs 中将 Mongoose (MongoDB) 中的数据列表显示到我的前端时遇到问题
例如:
var User = require("./models/user");
var Houses = require("./models/house");
app.get("/", function(req, res){
var list_houses = [];
for(var i=0; i<req.user.city.length; i++)
{
Houses.find({'city': req.user.city[i]}, function(err, result){
if(err)console.log(err);
if(result){
list_houses = list_houses.concat(result);//add array result to array list_prices
}
});
}
res.render("/prices_houses",{list_houses: list_houses});
});
我找到了模块“异步”,但两者都不起作用,我的代码是:
var User = require("./models/user");
var Houses = require("./models/house");
var async = require('async');
app.get("/", function(req,res){
var list_houses = [];
async.waterfall([
async.each(req.user.city, function(result, callback){
Houses.find({'city': result}, function(err, result){
if(err)console.log(err);
if(result){
list_houses = list_houses.concat(result);
}
});
});
], function(arg1, callback){
res.render("/prices_houses", {list_houses: list_houses});
});
});
当我想在 ejs 中显示 'list_houses.length' 时,它会显示:0
<%=list_houses.length%>
我在猫鼬中的模式是:
var User = new mongoose.Schema({
city : [String]
...
});
var House = new mongoose.Schema({
city: String
price: Double
});
我知道问题出在异步上,但我不知道如何解决。 请帮我解决这个问题。
【问题讨论】:
标签: node.js mongodb asynchronous mongoose