Nodejs Angularjs 里面的 Mongoose 查询 Async.series
Nodejs Angularjs Mongoose Query inside Async.series
我试图将值添加到我的数据库,然后使用 mongoose find 检索数据库。添加了值,但 mongoose 查找没有 return 值。以下是我的代码。
app.post('/api/infosave', function(req,res){
async.series([function (cb){
dbinfo.remove({}, function(err,result){
if (err) throw err;
cb(null);
});
}, function (cb){
for (var i=0; i<req.body.numBooks;i++){
dbinfo.create({
numBooks: i+1,
done: false
});
};cb(null)
}, function (cb){
dbinfo.find({},function(err,result){
if (err)
res.send(err);
res.json(result);
console.log(result);
cb(null);
});
}], function(error, results) {
});
});
在我的前端,我想输入我的书数,然后根据书数,列表将appear.Example如下:-
Number of books:-5(numBooks in the codes) [SUBMIT BUTTON]
Book number 1:
Book number 2:
Book number 3:
Book number 4:
Book number 5:
上面的代码不起作用,但如果我按 F5 刷新页面。它会给我正确的前端。
感谢帮助
您在尝试 .create()
您的模型的第二个函数调用中存在竞争条件。 .create()
接受回调的第二个参数。
它应该看起来像这样。在正确创建所有模型之前,您的 .series()
功能不应推进。
var bookNum = [];
for (var i = 0; i < req.body.numBooks; i++) {
bookNum.push(i+1)
}
async.map(bookNum, function(num, cb) {
dbinfo.create({
numBooks: i+1,
done: false
}, cb);
}, cb);
为您编写完整代码...
app.post('/api/infosave', function(req, res, next) {
async.waterfall([
function(cb) {
dbinfo.remove({}, cb);
},
function(ignore, cb) {
var bookNum = [];
for (var i = 0; i < req.body.numBooks; i++) {
bookNum.push(i+1)
}
async.map(bookNum, function(num, cb) {
dbinfo.create({
numBooks: i+1,
done: false
}, cb);
}, cb);
}
], function(err, results) {
if (err) return next(err);
res.json(results);
})
});
我试图将值添加到我的数据库,然后使用 mongoose find 检索数据库。添加了值,但 mongoose 查找没有 return 值。以下是我的代码。
app.post('/api/infosave', function(req,res){
async.series([function (cb){
dbinfo.remove({}, function(err,result){
if (err) throw err;
cb(null);
});
}, function (cb){
for (var i=0; i<req.body.numBooks;i++){
dbinfo.create({
numBooks: i+1,
done: false
});
};cb(null)
}, function (cb){
dbinfo.find({},function(err,result){
if (err)
res.send(err);
res.json(result);
console.log(result);
cb(null);
});
}], function(error, results) {
});
});
在我的前端,我想输入我的书数,然后根据书数,列表将appear.Example如下:-
Number of books:-5(numBooks in the codes) [SUBMIT BUTTON]
Book number 1:
Book number 2:
Book number 3:
Book number 4:
Book number 5:
上面的代码不起作用,但如果我按 F5 刷新页面。它会给我正确的前端。
感谢帮助
您在尝试 .create()
您的模型的第二个函数调用中存在竞争条件。 .create()
接受回调的第二个参数。
它应该看起来像这样。在正确创建所有模型之前,您的 .series()
功能不应推进。
var bookNum = [];
for (var i = 0; i < req.body.numBooks; i++) {
bookNum.push(i+1)
}
async.map(bookNum, function(num, cb) {
dbinfo.create({
numBooks: i+1,
done: false
}, cb);
}, cb);
为您编写完整代码...
app.post('/api/infosave', function(req, res, next) {
async.waterfall([
function(cb) {
dbinfo.remove({}, cb);
},
function(ignore, cb) {
var bookNum = [];
for (var i = 0; i < req.body.numBooks; i++) {
bookNum.push(i+1)
}
async.map(bookNum, function(num, cb) {
dbinfo.create({
numBooks: i+1,
done: false
}, cb);
}, cb);
}
], function(err, results) {
if (err) return next(err);
res.json(results);
})
});