node.js - 第一次加载 Sails.js 应用程序时加载数据(固定装置)

标签 node.js express sails.js

我使用的是 Sails.js 0.10 RC7。当开发人员 checkout 项目并运行它时,我想将一些数据预填充到数据库中。这应该只在应用程序第一次运行时完成(或者我们应该在新数据添加到固定装置时发生这种情况)。

我可以将数据放在 config/bootstrap.js 中,但据我所知,每次运行 sails lift 时都会运行。我可以这样做并编写一些逻辑,但如果已经有处理此事的约定,那么使用它会很棒。

需要明确的是,我并不是专门指测试装置,而是假定在任何运行环境中都可用的一些数据。

有人已经解决了这个问题吗?

最佳答案

我们在 Balderdash 进行的几乎每个 Sails 项目都面临这个问题.我们几乎总是通过在 bootstrap 中建立数据来解决它并将其包装在逻辑中以检测数据是否已经存在,就像您描述的那样。像这样的东西:

User.find({admin: true}).exec(function(err, adminUser) {
    // If an admin user exists, skip the bootstrap data
    if (adminUser) { return cb(); }
    // Otherwise, create data below...
});

它不像真正的“上/下”数据库迁移那样健壮,但由于我们使用非常方便(且无模式)的 disk adapter对于开发,只需通过删除数据文件来删除数据库,然后再次启动 Sails 以获得新的引导副本,这很简单。我们很少会错过数据库迁移带来的复杂性,但我们确实意识到在某些情况下它们变得必要。 Sails 社区已经提出了一些解决方案(这里是 one example )作为回应,这是我们希望看到的!

关于node.js - 第一次加载 Sails.js 应用程序时加载数据(固定装置),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24090135/

相关文章:

node.js - 需要并覆盖模块作用域变量以进行测试

node.js - 子进程和fork进程 Node js之间共享对象

node.js - 前端发送正常的http请求有哪些方式?

javascript - Sails JS 链接器 : Compiling JADE templates

javascript - Node.js 调用函数要求

c# - 为什么客户端在不同的服务器上使用更多的内存?

javascript - SailsJS,Socket IO 101(切换协议(protocol))永远悬而未决

node.js - Cassandra Sails model.count() 有效,但 model.find() 和 model.findOne() 无效

javascript - 在异步 Node 类中处理状态

node.js - MongoNetworkError : failed to connect to server [localhost:27017] on first connect [MongoNetworkError: connect ECONNREFUSED 127. 0.0.1:27017]