数据库的最近数据?"/>
为什么在Express.Js中find()方法不显示mongoDb数据库的最近数据?
当 app.post('/form-submit', funtion(req, res))
方法被调用,那么我希望它首先使用 save()
,它做得很好,但后来我叫 find()
方法,该方法显示了除最近由该方法添加的当前数据之外的所有来自mongoDB数据库的数据。save()
方法。
我想要这个 find()
方法也显示当前数据. 但是... show()
方法只显示以前的数据,不显示最近的数据,我想可能是异步的问题。
//For Put request in index.js
app.post('/form-submit', function(req, res) {
//To add the current data into database
connect.then((db) => {
var newTask = taskSchema({
Task: req.body.Task
});
newTask.save();
});
//To show the data into page 'showTask.ejs
taskSchema.find({}, function(err, val) {
console.log(res.length);
res.render('showTask.ejs', { todoTask: val });
});
});
回答如下:保存是异步的
它既可以返回一个承诺,也可以采取回调(err)=> {}。
所以你在它还没来得及保存的时候就取了信息
app.post('/form-submit', function(req, res) {
//To add the current data into database
connect.then((db) => {
var newTask = taskSchema({
Task: req.body.Task
});
return newTask.save();
}).then(() => {
//To show the data into page 'showTask.ejs
taskSchema.find({}, function(err, val) {
console.log(res.length);
res.render('showTask.ejs', { todoTask: val });
});
});
});
或:
app.post('/form-submit', async function(req, res) {
//To add the current data into database
const db = await connect;
var newTask = taskSchema({
Task: req.body.Task
});
await newTask.save();
//To show the data into page 'showTask.ejs
taskSchema.find({}, function(err, val) {
console.log(res.length);
res.render('showTask.ejs', { todoTask: val });
});
});
更多推荐
为什么在Express.Js中find()方法不显示mongoDb数据库的最近数据?
发布评论