这个项目使用sqlite和sequelize。我习惯了普通的sql,但这种方法对于在Node.js中创建API非常有用。
我有两个模型:用户和组。一个小组有很多用户,但其中一个是老师。我有一个单独的UserInGroup表来处理多对多关系,但对于教师的一对多关系,我已经重命名了关系'teacher'(所以属性是teacherId)。
db.group.belongsTo(db.user, {as: 'teacher'});
db.user.hasMany(db.group, {as: 'teacher'});
当我登录并尝试创建组对象时,它会尝试创建一个显然不存在的userId字段。如何将userId放在teacherId字段中?
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);
})
});
我不想简单地重命名该字段,因为我还将管理一个“消息”对象,该对象需要为发件人和收件人提供两个userId。我已经定义了db.js中的所有字段,但我不确定如何填充它们。
答案 0 :(得分:1)
db.group.belongsTo(db.user, {as: 'teacher',foreignKey: 'teacherId'});
db.user.hasMany(db.group, {as: 'teacher',foreignKey: 'teacherId'});
答案 1 :(得分:0)
就我而言,try this:
@Component
@Slf4j
public class CustomWebFilter implements WebFilter, Ordered {
@Value("${ss.apigateway.context.path}")
private String contextPath;
@Override
public Mono<Void> filter(ServerWebExchange serverWebExchange,
WebFilterChain webFilterChain) {
String path = serverWebExchange.getRequest().getURI().getPath().
replace(contextPath, "");
log.debug("Old Path: '{}', Modified Path: '{}'",
serverWebExchange.getRequest().getURI().getPath(), path);
ServerHttpRequest updatedHttpRequest = serverWebExchange.getRequest().mutate().path(path).build();
return webFilterChain.filter(serverWebExchange.mutate().request(updatedHttpRequest).build());
}
@Override
public int getOrder() {
return Ordered.HIGHEST_PRECEDENCE;
}
}
与 Businesscategory
模型有关系
表。
实际表名是
BusinessProduct
= Businesscategory
还有
businesscategories
= BusinessProduct
现在关系 business_products
应该在 BusinessProduct.businesscategory_id
表内,但我用 BusinessProduct
所以现在我面临以下错误
product_category_id
所以我使用以下代码来解决这个问题。 它对我有用。
Unknown column 'BusinessProducts.businesscategory_id' in 'on clause'