Sequelize принадлежит To / hasOne, возвращающий нуль - PullRequest
0 голосов
/ 15 февраля 2019

Я добавил внешний ключ с помощью sequelize. Пользователь - это моя родительская таблица и идентификатор контактов. Внешний ключ моей дочерней таблицы - user_id. Когда я публикую подробности, я ожидаю, что он отобразит идентификатор пользователя в качестве внешнего ключа в таблице контактов, но он показываеткак ноль.

снимок экрана таблицы контактов

Модель пользователя

const Sequelize = require('sequelize')
const db = require("../database/db.js")

module.exports = (sequelize, Sequelize) => {
    const Users = sequelize.define('users', {
        user_id: {
            type: Sequelize.INTEGER,
            primaryKey: true,
            autoIncrement: true
        },
        email: {
            type: Sequelize.STRING
        },
        password: {
            type: Sequelize.STRING
        }
    });
    return Users
}

Модель контакта

module.exports = (sequelize, Sequelize) => {
    const Contact = sequelize.define('profile_contacts', {
        id: {
            type: Sequelize.INTEGER,
            primaryKey: true,
            autoIncrement: true
        },
        phone: {
            type: Sequelize.STRING
        },
        linkedin_profile: {
            type: Sequelize.STRING
        }
    });


    return Contact
}

маршруты контактов

var express = require("express")
var router = express.Router()
const db = require('../database/db.js');
const Contact = db.Contacts;

// get all jobs
router.get("/", (req, res) => {
    Contact.findAll()
      .then(contacts => {
          res.json(contacts)
      })
      .catch(err => {
          res.send('error: ' + err)
      })
})

// Add job
router.post("/", (req, res) => {
    if(!req.body.phone,
       !req.body.linkedin_profile) {
        res.status(400)
        res.json({
            error: "Bad Data"
        })
    } else {
       Contact.create(req.body)
        .then(() => {
            res.send("Contact Added")
        })
        .catch(err => {
            res.send("Error: " + err)
        })
    }
})

база данных

const Sequelize = require('sequelize')
const db = {}
sequelize = new Sequelize('database', 'useer' , 'Password' , {
  host: 'host',
  dialect: 'mysql',
  operatorsAliases: false,
  dialectOptions: {
    ssl: true
  },
  pool: {
    max: 100,
    min: 0,
    acuire: 3000,
    idle: 10000
  },
})

sequelize.sync().then(function() {
  console.log("Database Connection Succeful");
}, function(err) {
  console.log(err);
})

db.sequelize = sequelize
db.Sequelize = Sequelize

db.Users = require('../model/User.js')(sequelize, Sequelize);
db.Contacts = require('../model/Contact.js')(sequelize, Sequelize);

db.Contacts.belongsTo(db.Users, { foreignKey: 'fk_user_id', targetKey: 'user_id'});
db.Users.hasOne(db.Contacts, {foreignKey: 'fk_user_id', targetKey: 'user_id'})

module.exports = db
...