首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在初始化其他模型之前,SailsJS最佳做法是使用数据种子数据库

在初始化其他模型之前,SailsJS最佳做法是使用数据种子数据库
EN

Stack Overflow用户
提问于 2014-04-08 15:40:11
回答 4查看 6.4K关注 0票数 4

有一个模型,所有其他模型都假定它的存在。应该在调用任何API函数之前对其进行初始化。

我做这件事的方式(不起作用):

1)在api/ model中定义模型,我们将其称为Location.js

2)在bootstrap.js中添加以下内容

代码语言:javascript
复制
    var Locations = require('../api/models/Locations.js');

    module.exports.bootstrap = function (cb) {

      // seed the database with Locations
        var locationsObj = {
            country: 'Australia',
            states: ['Brisbane', 'Perth', 'Sydney']
        };
        Location.create(locationsObj, function locationsObj(err, locations) {
            if (err) {
                cb(err);
            }
            console.log('locations created: ', locations);
        });
  }

问题1这是做初始数据库种子的正确方法吗?

我知道这个错误:

代码语言:javascript
复制
Locations.create(locationsObj, function locationsObj(err, locations) {
          ^
TypeError: Object #<bject> has no method 'create'

问题2引导的cb函数是如何工作的?如果有一个错误,怎么办?

EN

回答 4

Stack Overflow用户

发布于 2014-09-09 22:00:42

sails模型是全局可用的,因此您不需要在bootstrap.js上使用。

这就是我用来为我的数据库做种子的东西。(请参阅我随函附上的指向专家的链接)

  1. 在config/models.js s.js中包含种子函数。您在此文件中声明的方法将扩展到所有模型。链接:种子方法要点
  2. 在您的模型链接:模型的种子数据中定义种子将消耗的de数据
  3. 使用异步调用config/bootstrap.js中的种子方法。链接:调用方法

更新

看看这个威胁:将表更改迁移到生产水手表的最佳方法

票数 10
EN

Stack Overflow用户

发布于 2014-04-08 15:53:35

来自不能用水手测试我的模型

“一旦Sails应用程序被取消,你就会自动获得你的模型.

在您的例子中,您的第一行覆盖了用户模型,而用户模型本来是由Sails.js构建的,这就是为什么即使您有一个对象,它也不是一个水线模型。“

票数 2
EN

Stack Overflow用户

发布于 2015-11-24 02:33:27

我知道这很古老,但为了完整起见:

你设置

代码语言:javascript
复制
var Locations = ...

但是你给我打电话

代码语言:javascript
复制
Location.create()

(不)所以你只是有一个错误。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22941765

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档