【问题标题】:Cannot create items in database of keystone.js无法在 keystone.js 的数据库中创建项目
【发布时间】:2015-07-29 22:23:22
【问题描述】:

我使用 Yeoman 创建了一个 keystone.js 文件夹。在文件 keystone.js 中,我在 keystone.start() 之前添加了一些代码来添加一个新项目并列出所有当前项目,如下所示:

var newPost = new Post.model({
    title: 'New Post'
});

newPost.save(function(err) {
    // post has been saved      
});

Post.model.find(function (err, posts) {
  if (err) return console.error(err);
  console.log(posts);    
})
keystone.start();

但是,Post.model.find 中的帖子是一个空数组,这意味着没有添加任何项目。谁能帮我吗? 提前谢谢你。

【问题讨论】:

    标签: node.js mongodb mongoose keystonejs


    【解决方案1】:

    newPost.save 方法是异步执行。
    在您的代码中,您是在 newPost 成功保存之前的查询帖子。

    newPost.save(function(err) {
        Post.model.find(function (err, posts) {
            if (err) return console.error(err);
            console.log(posts);
            keystone.start();
        });
    });
    

    你的代码应该这样写。

    【讨论】:

    • 在这种情况下,我认为最好使用 Promise(详情 here),因为代码变得更具可读性。无论如何,您的回答可能是正确的,我投了赞成票。
    猜你喜欢
    • 2014-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-05
    • 2012-04-09
    • 1970-01-01
    • 2019-06-10
    • 1970-01-01
    相关资源
    最近更新 更多