node.js - 在 sequelize 中重命名外键关联

标签 node.js sequelize.js

该项目使用 sqlite 和 sequelize。我习惯了普通的 sql,但是这种方法对于在 Node.js 中创建 API 看起来很有用。

我有两个模型:用户和组。一个组有很多用户,但一个是老师。我有一个单独的 UserInGroup 表来处理多对多,但对于老师的一对多关系,我已将关系重命名为“老师”(因此属性为teacherId)。

db.group.belongsTo(db.user, {as: 'teacher'});   
db.user.hasMany(db.group, {as: 'teacher'});

当我登录并尝试创建组对象时,它尝试创建一个 userId 字段,该字段显然不存在。我怎样才能让它把 userId 放在教师 ID 字段中?
app.post('/groups', middleware.requireAuthentication, function(request, response){

    var body = _.pick(request.body, 'name', 'description');
    body.description = body.description.trim();
    body.name = body.name.trim();

    db.group.create(body).then(function(group){              
        request.user.addGroup(group).then(function(){
            return group.reload();
        }).then(function(group){
            response.json(group.toJSON())   
        })
    }, function (e) {                                   
        response.status(400).json(e);
    })
});

我不想简单地重命名该字段,因为我还将管理一个“消息”对象,该对象需要为发件人和收件人获取两个用户 ID。我已经定义了 db.js 中的所有字段,但我不确定如何填充它们。

最佳答案

db.group.belongsTo(db.user, {as: 'teacher',foreignKey: 'teacherId'});   
db.user.hasMany(db.group, {as: 'teacher',foreignKey: 'teacherId'});

引用:http://docs.sequelizejs.com/en/latest/docs/associations/

关于node.js - 在 sequelize 中重命名外键关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41653866/

相关文章:

Node.js:如何在 Sequelize 中使用 Postgres 存储过程?

node.js - cMalformedResponse:Webhook错误(206),同时看似有效的Webhook响应-Node.js中对Google Dialogflow应用的操作

node.js - Sequelize - 需要一个没有对应表列的属性

javascript - MySQL:使用不同的查询,然后将相同的表过滤与其结果连接起来

express - 多次更新后发送单个响应

javascript - 我可以在 Node.js/Express 中动态导入 TypeScript 模块吗?

javascript - 获取 http.get 数据到本地 JSON 数组变量

javascript - Node.js POST API 和请求体的解析

javascript - 如何 promise node.js net.connect(使用 bluebird)?

node.js - 如何在 sails.js 中保存模型?