Javascript 为什么find()方法没有';t在Express.Js中显示来自mongoDb数据库的最新数据
当调用Javascript 为什么find()方法没有';t在Express.Js中显示来自mongoDb数据库的最新数据,javascript,node.js,mongodb,express,mongoose,Javascript,Node.js,Mongodb,Express,Mongoose,当调用app.post('/form submit',funtion(req,res))方法时,我希望它首先使用save()保存数据,它做得很好,但随后我调用find()方法,该方法显示来自mongoDB数据库的所有数据,除了save()方法最近添加的当前数据 我希望find()方法也显示当前数据。但是show()方法只显示以前的数据,而不是最近的数据。 我想这可能是异步问题 //For Put request in index.js app.post('/form-submit', funct
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 });
});
});
});
或:
但当我尝试将“await”作为save()的前缀时,它会给我错误SyntaxError:await仅在异步函数中有效dd async:app.post('/form submit',async function(req,res){.or use.then:return newTask.save();})
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 });
});
});