我正在尝试决定如何处理Mongoose中的验证错误.
我使用node-validator定义了自己的验证规则,例如:
UserSchema.path('username')
.validate(function (username) {
return validator.check(username).notEmpty()
}, 'Username cannot be blank')
Run Code Online (Sandbox Code Playgroud)
这会产生如下错误:
username:
{ message: 'Validator "Username cannot be blank" failed for path username',
name: 'ValidatorError',
path: 'username',
type: 'Username cannot be blank' },
Run Code Online (Sandbox Code Playgroud)
但是,node-validator提供自己的错误消息.如果我使用mongoose-validator节点模块将node-validator直接插入我的模式,那么我可以直接使用这些错误消息:
var UserSchema = new Schema({
name: { type: String, validate: [validate('notEmpty')] }
});
Run Code Online (Sandbox Code Playgroud)
这将生成如下所示的错误消息:
name:
{ message: 'Validator "String is empty" failed for path name',
name: 'ValidatorError',
path: 'name',
type: 'String is empty' } }
Run Code Online (Sandbox Code Playgroud)
我也可以在这里提供自定义错误消息:
var …
Run Code Online (Sandbox Code Playgroud) 是否更好地存储对象或引用其他对象中的对象?让我举个例子来解释一下.
我有一个对象"团队"和一个对象"单元"该单元属于团队.我想在对象"团队"中"存储"对象"单元".
1)我可以这样做:单位存储在团队对象中
// class Team
function Team() {
this.units = [];
}
// class Unit
function Unit(team) {
team.units.push(this);
}
myTeam = new Team();
units = [];
units[units.length] = new Unit( myTeam );
Run Code Online (Sandbox Code Playgroud)
2)或类似的东西:单位id存储在团队对象中
// class Team
function Team() {
this.units = [];
}
// class Unit
function Unit(team, id) {
team.units.push(id);
}
myTeam = new Team();
units = [];
units[units.length] = new Unit( myTeam, units.length );
Run Code Online (Sandbox Code Playgroud)
这是可以理解的吗?
我想通过这些关节检索这些表中的所有字段.
我的查询在循环中运行并且不会停止.
SELECT *
FROM (`t_produits`, `t_categories`, `t_sscategories`, `t_produits_couleurs`, `t_couleurs`)
JOIN `t_categories` AS categories ON (`t_produits`.`produits_idcat` = `t_categories`.`categories_id`)
JOIN `t_sscategories` AS sscategories ON (`t_produits`.`produits_idsscat` = `t_sscategories`.`sscategories_id`)
JOIN `t_produits_couleurs` AS produitscouleurs ON (`t_produits`.`produits_idproduit` = `t_produits_couleurs`.`produits_couleurs_idproduit`)
JOIN `t_couleurs` AS couleurs ON (`t_produits_couleurs`.`produits_couleurs_idcouleur` = `t_couleurs`.`couleurs_id`);
Run Code Online (Sandbox Code Playgroud)
我试过这个并且效果很好:
SELECT *
FROM (`t_produits`, `t_categories`)
JOIN `t_categories` AS categories ON (`t_produits`.`produits_idcat` = `t_categories`.`categories_id`)
Run Code Online (Sandbox Code Playgroud) javascript ×1
join ×1
loops ×1
mongodb ×1
mongoose ×1
mysql ×1
node.js ×1
object ×1
validation ×1