Sequelize默认外键

时间:2017-11-07 06:32:12

标签: postgresql sequelize.js

我有一个Route模型属于Region,当我定义该关联时,我认为你可以简单地执行以下操作:

"use strict";
module.exports = (sequelize, DataTypes) => {
  const Route = sequelize.define("Route", {
    title: {
      type: DataTypes.STRING,
      allowNull: false
    }
  });

  Route.associate = models => {
    Route.belongsTo(models.Region);
  };
  return Route;
};

路线:

app.post("/api/regions/:regionId/routes", routesController.create);

控制器:

  create(req, res) {
    console.log(req.params.regionId);
    return Route.create({
      title: req.body.title,
      regionId: req.params.regionId
    })
      .then(route => res.status(201).send(route))
      .catch(err => res.status(400).send(err));
  },

但是当我发布到那条路线时,我会继续使用Null获取regionId的路线。尽管我可以log使用POST参数区域foreignKey

我知道修复方法是将regionId添加到显式声明以使用Route.associate = models => { Route.belongsTo(models.Region, { foreignKey: "regionId" }); }; 作为foreignKey:

regionId

但是我认为它可以将setBounds((int) trans.getTranslateX(), (int) trans.getTranslateY(), (int) (width * expansionStage/steps), (int) (height * expansionStage/steps)); 默认为foreignKey而不声明它。我错过了什么吗?

0 个答案:

没有答案
相关问题