小编nic*_*ast的帖子

处理Mongoose验证错误 - 在哪里以及如何?

我正在尝试决定如何处理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)

使用mongoose-validator

但是,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)

validation mongoose mongodb node.js

47
推荐指数
3
解决办法
6万
查看次数

将对象"存储"在对象中是否好

是否更好地存储对象或引用其他对象中的对象?让我举个例子来解释一下.

我有一个对象"团队"和一个对象"单元"该单元属于团队.我想在对象"团队"中"存储"对象"单元".

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)

这是可以理解的吗?

javascript object

4
推荐指数
1
解决办法
112
查看次数

MySQL加入,查询没有结束(循环?)

我想通过这些关节检索这些表中的所有字段.
我的查询在循环中运行并且不会停止.

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)

mysql loops join

0
推荐指数
1
解决办法
224
查看次数

标签 统计

javascript ×1

join ×1

loops ×1

mongodb ×1

mongoose ×1

mysql ×1

node.js ×1

object ×1

validation ×1