小编Eri*_*ell的帖子

如何进行knex.js迁移?

我还不确定如何使用knex进行迁移.这是我到目前为止所拥有的.它可以工作up,但down即使foreign_key_checks = 0,也会给我FK约束错误.

exports.up = function(knex, Promise) {
  return Promise.all([
    knex.raw('SET foreign_key_checks = 0;'),

    /* CREATE Member table */
    knex.schema.createTable('Member', function (table) {
      table.bigIncrements('id').primary().unsigned();
      table.string('email',50);
      table.string('password');

      /* CREATE FKS */
      table.bigInteger('ReferralId').unsigned().index();
      table.bigInteger('AddressId').unsigned().index().inTable('Address').references('id');
    }),

    /* CREATE Address table */
    knex.schema.createTable('Address', function (table) {
      table.bigIncrements('id').primary().unsigned();
      table.index(['city','state','zip']);

      table.string('city',50).notNullable();
      table.string('state',2).notNullable();
      table.integer('zip',5).unsigned().notNullable();
    }),

    knex.raw('SET foreign_key_checks = 1;')
  ]);
};

exports.down = function(knex, Promise) {
  return Promise.all([
    knex.raw('SET foreign_key_checks = 0;'),

    knex.schema.dropTable('Address'),

    knex.schema.dropTable('Member'),

    knex.raw('SET foreign_key_checks = 1;')

  ]);
};
Run Code Online (Sandbox Code Playgroud)

javascript knex.js

21
推荐指数
3
解决办法
2万
查看次数

sequelize Model.hasOne错误:模型与ModelTwo无关

我已将sequelizejs集成到我的快速框架中.我配置了所有模型,并试图用它构建我的第一个查询.

我一直收到错误"错误:模型与ModelTwo没有关联!"

app.get('/',function(req,res){
 db.Member.findAll({include:[{model:db.MemberProfile,as:'Profile'}]})
 .success(function(users){
  if(users){
   res.json(users);
  }else{
   res.send('no users');
  }
 });
});
Run Code Online (Sandbox Code Playgroud)

// model.js

module.exports = function(sequelize,sql) {
 return sequelize.define('Model', {
  //attributes
 });

 Model.hasOne('ModelTwo',{foreignKey:'model_id'});

};
Run Code Online (Sandbox Code Playgroud)

//model_two.js

module.exports = function(sequelize,sql) {
 return sequelize.define('ModelTwo', {
  //attributes
 });

//no relationship defined. Tried ModelTwo.hasMany('Model',{foreignKey:'id'});
//but it yields the same resulting error
};
Run Code Online (Sandbox Code Playgroud)

关于可能出错的任何想法?我正在使用最新版本的sequelize 1.7.0-rc6.

javascript sql node.js sequelize.js

19
推荐指数
2
解决办法
1万
查看次数

angularjs控制器执行2次

我有一个问题,控制器执行两次,但我没有我能看到的重复项(即使运行一个案例sensiTIve搜索我的文件只显示一个在路由配置和我的实际控制器).

路线配置:

$routeProvider.when('/cb159e1ec61d0613f10ab397d8bd6782',{
    templateUrl: view+'passwordreset.html',
    controller:'passwordreset'
});
Run Code Online (Sandbox Code Playgroud)

控制器:

App.controller('passwordreset',['$scope','$http',
    function($scope,$http){
        $scope.token='asdf'
        console.log($scope.token); // <-- logs 2x to console
}]);
Run Code Online (Sandbox Code Playgroud)

passwordreset.html:

<div class="row">
    <div class="small-12 columns">
        <fieldset class="content-box">
            password reset {{token}}
        </fieldset>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

此外,我已经创建了一个新的路线并尝试过,仍然会记录两次.我也清除了我的缓存.有些控制器执行一次,有的两次(我在一些控制器中发出警报,一些显示一次,一些显示两次)

另一个例子:

//route config
    $routeProvider.when('/', {
     templateUrl: view+'home',
     controller:'Home'
    });

//template   
        <div ng-controller="testing">a</div>
//controller
Lmu.controller('Home',function($scope){
    $scope.home='home';
    alert($scope.home); <-- alerts 2x (two scopes for Home controller are created)
});
Run Code Online (Sandbox Code Playgroud)

javascript angularjs

3
推荐指数
1
解决办法
4982
查看次数

sequelize 不包括关联模型数据中的连接表

假设我有 2 个模型,用户和事件。它们被设置为 am:m 关系User.belongsToMany(Event)Event.belongsToMany(User). 这一切都很好,但是当我这样做时User.findAndCountAll({include: [{model: Event}]}),result.rows 的结果 json 看起来像

[
    ...
    {
        userdata...,
        events: [ // included by model relation
        ...included event data...,
        junction_table: { // I dont want this data sent back to client, just above data
            ...data i dont want...
        }
    }
...
]
Run Code Online (Sandbox Code Playgroud)

我想要

[
    {
    userdata...,
    events: [
        { included event data without junction_table }
    ]
    }
]
Run Code Online (Sandbox Code Playgroud)

有没有办法去掉由于某种原因自动包含在每个事件中的junction_table,而无需.mapping 数据并重建它?我宁愿不一直通过网络将我不需要的所有这些数据发送给客户端。我尝试只attributes: []在模型上指定,但它不会消失。

javascript sql postgresql node.js sequelize.js

2
推荐指数
1
解决办法
1090
查看次数