用到的技術:Node.js的,Express.js,Sequilize.jsSequilize.js - 協會,2個表
我試圖連接兩個表。有一個user
表和一個color
表。
甲color
屬於user
和user
可以具有一個顏色。
我的文件結構:
My Project
|__config
|__db.js
|__models
|__user.js
|__color.js
|__routes
|__index.js
|__app.js
在我user.js
文件:
module.exports = function(sequelize, DataTypes) {
return sequelize.define('user', {
/* attributes, such as: username */
});
};
在我color.js
文件:
module.exports = function(sequelize, DataTypes) {
return sequelize.define('color', {
color: {
type: DataTypes.STRING,
allowNull: false
}
});
};
然後在db.js
這是我配置這些文件:
const db = {};
db.sequelize = sequelize;
db.Sequelize = Sequelize;
db.user = sequelize.import('../models/user.js');
db.color = sequelize.import('../models/color.js');
db.color.belongsTo(db.user);
db.user.hasOne(db.color);
module.exports = db;
現在是麻煩開始的地方。當有人創建新的user
帳戶(使用POST請求)時,他們還必須選擇color
。所以用戶信息將進入user
表格,顏色信息將進入color
表格......但我該怎麼做?在創建階段如何鏈接這兩個表。以下是我到目前爲止。
我的POST請求是這樣的,我index.js
文件:
const express = require('express');
const router = express.Router();
const db = require('../config/db');
router.post('/createNewUser', function(req, res) {
const username = req.body.username
const color = req.body.color
db.user.create({
username: username
color: color
}, {
include: db.color
}).then(function(result) {
//do something
}).catch(function(err) {
//in case of error
});
});
創建表工作正常(所有的配置代碼是在app.js
文件,這裏不包括在內)。表格被創建;用戶名被放入user
表和顏色被放置在color
表,但在color
表userID
是null.