Articles of validation

基于其他领域的mongoosevalidation

考虑下面的模式来保存Mongoose中的时间间隔: let dateIntervalSchema = new mongoose.Schema({ begin: { type: Date, required: true }, end: { type: Date, required: true } }) 我如何确保end始终大于或等于begin使用Mongoosevalidation ?

Mongoosevalidation架构没有模型

我想在对应于较大模式的模型上发布该对象之前,针对作为较大模式的成员的模式来validation对象的一些内部元素。 有人已经问过这个问题, 这个答案在第二个选项上有类似的地方: var p = new People({ name: 'you', age: 3 }); p.validate(function(err) { if (err) console.log(err); else console.log('pass validate'); }); 问题是,在进行validation之前,必须使用var People = mongoose.model('People', peopleSchema);创build一个新模型var People = mongoose.model('People', peopleSchema); 。 这是否意味着在这种情况下,新的集合'People'将被存储在MongoDB数据库中? 是叫mongoose.model('People', peopleSchema); 以任何方式改变数据库? 如果是这样,有没有办法做到这一点,而不是创build一个新的集合,在这种情况下, 'People' ? 我想要validation的模式将作为另一个文档的一个组件存储在数据库中,我不想用未使用的集合来污染数据库。

如何在服务器端重新使用Angular进行validation?

我想在客户端和服务器端重用与Angular 4.4.5和NodeJS 7.10.1(最新的Ubuntu回购)相同的一组validation器。 我相信这是可能的。 我的基本思路是让HTTP端点在NodeJS和Express上工作,它接受来自AngularJS数据的POST请求,与接收到的数据创build相同的表单并进行检查。 我的尝试是不成功的,我不知道如何使用相同版本的Typescript作为Angular用途以及如何导入组件与窗体。 看到一些简单的例子,这将是理想的工作。 我会很快分享我的尝试。

如何用Joi来validation嵌套对象上的string

我的目标是允许一个可以包含任何东西的任意深度的嵌套对象。 在那个嵌套对象中,我只想对string执行额外的validation。 所以,对象可能是这样的: { "features": { "feature1": "value1", "feature2": false, "feature3": 321, "feature4": { "something": "else" }, "feature5": ["something", "more"] } 对于所有的string值我想执行一些额外的validation,但对于其他任何事情,我只是想接受它是有效的。 我只是部分在那里,需要一些帮助处理嵌套对象等。 这是我得到的: var providerSchema = Joi.object().keys({ features: Joi.object().pattern(/^/, Joi.alternatives() .when(Joi.ref('features'), { is: Joi.string(), then: validateBlacklist(['<', '>']), otherwise: Joi.any() })) }); function validateBlacklist(list) { let regex = new RegExp(`^(?:(?!${list.join('|')}).)*$`); return Joi.string().regex(regex) .options({language: { string: […]

req.checkQuery(''); &req.checkParams(''); validation – >错误句柄(node.js)

我正在尝试使用express-validator的 req.checkQuery(''); req.checkParams(''); 简单地检查/validation,并确保我的查询参数是有效的。 通过这个摩卡错误: error handling handles invalid query params: Error: expected 422 "Unprocessable Entity", got 200 "OK" 我在这方面尝试过; 我没有find这两个具体的文件。 任何使用checkQuery和checkParams指针? 我可以通过这些查询所有查询和参数吗? app.get('*', function(req, res) { req.checkQuery(''); req.checkParams(''); }); 产生: '错误:预期422“不可处理的实体”,得到200“OK”“node.js /快递应用程序

如何使用joivalidation用户名是否唯一?

我读了一篇文章,在这篇文章中,作者使用Joi来asynchronousvalidation用户名是否唯一,通过检查数据库。 现在我找不到它了,我想知道怎样才能和Joi做到这一点。

电子邮件validation后无法创build用户

我使用passport.js和mailgun-validate-email来尝试validation电子邮件,然后根据该电子邮件创build一个用户帐户。 我可以得到它来validation电子邮件,但它不会完成POST请求实际创build用户。 它最终会显示一个日志,但是它甚至不会给出我觉得奇怪的状态代码。 我正在用摩根来看这个。 Passport.use注册中间件 passport.use('signup', new LocalStrategy({ usernameField: 'email', passReqToCallback : true }, function(req, email, password, done) { var findOrCreateUser = function(){ console.log(req.body.email); User.findOne({ email: req.body.email }, function(err, existingUser) { if(err){ console.log(err); } if (existingUser) { req.flash('form', { email: req.body.email }); return done(null, false, req.flash('error', 'An account with that email address already exists.')); } […]

validation邮件后,护照无法使用

我使用passport.js和mailgun-validate-email来尝试validation电子邮件,然后根据该电子邮件创build一个用户帐户。 我可以得到它来validation电子邮件,但它不会完成POST请求实际创build用户。 它最终会显示一个日志,但是它甚至不会给出我觉得奇怪的状态代码。 我正在用摩根来看这个。 通常情况下,这只是-状态码将在哪里。 Passport.use注册中间件 passport.use('signup', new LocalStrategy({ usernameField: 'email', passReqToCallback : true }, function(req, email, password, done) { var findOrCreateUser = function(){ console.log(req.body.email); User.findOne({ email: req.body.email }, function(err, existingUser) { if(err){ console.log(err); } if (existingUser) { req.flash('form', { email: req.body.email }); return done(null, false, req.flash('error', 'An account with that email address already exists.')); […]

是否有可能为Mongoose SchemaTypes禁用自动types转换?

对于具有此架构的模型… { name: { type: String } } …以下内容自动将提供的值转换为string,而不是强制执行types: document.name = 2; document.validate(err => { // Err is null, document.name === '2' }) 有没有简单的方法来禁用这种行为?

mongoose自定义validationfunction与竞争条件

我们有一个日历API,用于在一天内预订一个插槽 SlotShcema startDateTime:Date // showing the day and the starting hour duration:number // showing the slot duration 我们可以计算出槽的结束 endDateTime = startDateTime + duration 我们要添加一个validation,所以没有两个槽相交,只有一个用户可以预订它。 我发现服装asynchronous自定义validation器 ,但我们无法find我们的场景任何文档。 问题是想方设法解决两个并发保存可能节省冲突预订“交易”的竞争条件。 在开始创build插槽之前,我做了自己的validationfunction,但是如果有竞争条件,它可能同时保存两个插槽,这是错误的。 有什么方法可以解决比赛条件? 问题在GitHub https://github.com/Automattic/mongoose/issues/5876