如何验证 Strongloop 中的外键?
How to verify an foreign key in Strongloop?
我有一个类别列表和一个地点列表,每个地点在外键中都有一个 categorieId。
categorie.json: http://pastebin.com/ttumKPf9
place.json: http://pastebin.com/J4bdEiUx
我尝试验证类别 ID 是否存在。为此,我重新定义了一个创建方法class。在 class 位置,我搜索类别 ID 是否存在于类别中。如果找到它,我会调用 upsert 方法将数据插入到位。
但是这个 upsert 方法召回创建方法......
如果我不调用 upsert 方法,则不会插入数据。
如何在 strongloop 中验证和插入数据?
script.js:
module.exports = function(app){
var Place = app.models.place;
var Categorie = app.models.categorie;
Place.create = function(data,callback){
console.log("avant find");
console.log(data.id);
Categorie.findById(data.categorieId, function(err, instance){
console.log("find")
if(err){
throw err;
}
if(instance == null){
new err;
throw err;
}
console.log("Upsert");
Place.upsert(data, callback);
});
};
};
您应该重新定义远程方法,而不是 ORM 方法。
另一种方法,如果您使用关系数据库,请创建外键约束。
这是 SQL 查询,其中 place
和 categorie
是 table 名称:
ALTER TABLE place ADD CONSTRAINT Categorie_places_ix FOREIGN KEY (categorieId) REFERENCES categorie(id) ON DELETE SET NULL;
我有一个类别列表和一个地点列表,每个地点在外键中都有一个 categorieId。
categorie.json: http://pastebin.com/ttumKPf9
place.json: http://pastebin.com/J4bdEiUx
我尝试验证类别 ID 是否存在。为此,我重新定义了一个创建方法class。在 class 位置,我搜索类别 ID 是否存在于类别中。如果找到它,我会调用 upsert 方法将数据插入到位。 但是这个 upsert 方法召回创建方法...... 如果我不调用 upsert 方法,则不会插入数据。 如何在 strongloop 中验证和插入数据?
script.js:
module.exports = function(app){
var Place = app.models.place;
var Categorie = app.models.categorie;
Place.create = function(data,callback){
console.log("avant find");
console.log(data.id);
Categorie.findById(data.categorieId, function(err, instance){
console.log("find")
if(err){
throw err;
}
if(instance == null){
new err;
throw err;
}
console.log("Upsert");
Place.upsert(data, callback);
});
};
};
您应该重新定义远程方法,而不是 ORM 方法。
另一种方法,如果您使用关系数据库,请创建外键约束。
这是 SQL 查询,其中 place
和 categorie
是 table 名称:
ALTER TABLE place ADD CONSTRAINT Categorie_places_ix FOREIGN KEY (categorieId) REFERENCES categorie(id) ON DELETE SET NULL;