0
我有一个小应用程序,我正在做一个任务列表中的原型(我非常熟悉sails)。简单的东西。但是,当我创建任务并在创建后转发到列表时,该任务不会显示在我的列表中。如果我做一个页面刷新它。sails.js:新创建的记录不会在页面上填充,直到刷新
下面的代码片段:
在任务 - >创建
List.findOne(req.session.List.id)
.exec(function foundTasks (err, list) {
Task.find({where: { list: list.id }, limit: 1, sort: 'priority desc'})
.exec(function getTaskPriority (err, task) {
if (err) {
console.log(err);
req.session.flash = {
err: err
}
}
list.tasks.add({name: req.param('name'), list: req.session.List.id});
list.save(function(err) {});
});
res.redirect('/list/show/'+req.session.List.id);
});
});
在列表 - >显示
show: function(req, res, next) {
List.findOne(req.param('id'))
.populate('tasks')
.exec(function foundTasks (err, r) {
req.session.List = r;
if (err) return next(err);
res.view({
name: r.name,
tasks: r ? r.tasks : []
});
});
},
当我创建一个正常的项目不会出现这种情况,只通过.add()函数创建一个项目。它发生在我的代码中的其他地方(我有多个上下文添加)。
使用此代码,如果我创建任务“执行此1”,我将重定向到我的任务列表,并且“执行此操作1”不在此处。如果我刷新,它确实显示。如果我添加“执行此2”,那么我将被重定向到任务列表,并且仅显示“执行此操作1”。直到我刷新,然后出现“做这2个”。
我想也许有一个异步问题(页面加载速度比正在创建和读取数据库中的记录?),但我已经添加了调试步骤来分析。
任何人有任何想法?