Articles of validation

仅当另一个具有特定值时,才需要Node Js Express Validator字段

我使用express-validator来检查我的post字段。 我的问题是我想只需要其他字段具有特定的值所需的一些字段。 例如: if person_organisation is true: person_organisation_name must be required if person_organisation is false: person_first_name must be required 有没有什么办法把这个规则放在validation架构中?

Node.js,Express,Mongoose – inputvalidation – 在路由或模型中?

我有一个restapi资源,接受一个JSON文章。 例: { "location": { "coordinates": [ -122.41941550000001, 37.7749295 ] } 然后通过Express从请求中收集坐标: module.exports.create = function(req, res, next) { var coordinates = req.body.location.coordinates; …. 然后这些提交给一个mongoose模型。 我正在写这个testing,在这个地方。坐标缺less,例如 { "foo": { "bar": [ -122.41941550000001, 37.7749295 ] } 然后在模型的validation部分失败: locationSchema.path('location.coordinates').validate(function(coordinates){ ^ TypeError: Cannot call method 'validate' of undefined 所以我的问题是我将如何validationinput是正确的? 在进入模型之前,是否应该在路线上完成这项工作?还是应该在模型中完成? 任何例子,如何也将不胜感激。 作为参考,Mongoose模型看起来像这样: var locationSchema = new Schema({ userid: { […]

为什么我不能用mongoose来validationembedded式文档? 什么是正确的方法来做到这一点?

我有这样的架构: var testSchema = new Schema({ foo: { type: String, required: true, trim: true }, bar: { fooBar: { type: String }, barFoo: { type: String } } }); 我必须根据foo值validationbar的值,如下所示: testSchema.path("bar").validate(function(bar){ if(this.foo === "someValue") //return custom validation logic 1 else if(this.foo === "anotherString") //return custom validation logic 2 else return false; }); 但是当我尝试打我的应用程序,我得到以下错误: /Users/Renato/github/local/prv/domain/models/testModel.js:34 testSchema.path("bar").validate(function(bar){ […]

服务器端数据validation在Express + node.js中

我的服务器由三个主要组件组成 – node.js + express + mongojs。 现在我正在寻找一种方法来插入客户端input的服务器端validation。 Mongoose通过Schema定义提供它,但是,我希望validation独立于特定的DB层。 理想情况下,我正在寻找支持声明式validation规则的东西(再次像mongoose模式),但是与mongo没有任何耦合。 有任何想法吗? PS 我提到Express,因为我的意图是将validation层作为Express中间件插入。 这应该工作,不是吗? PPS 额外的奖励,如果相同的JavaScript代码也可以在客户端使用。

尝试为Google身份validation器插入二维码图片时出现400错误请求

我正在尝试使用Google Authenticator在我的网站上设置双因素身份validation。 我能够生成工作代码,但是当我将图像URL插入到页面中时,在Chrome检查器中出现以下错误: GET https://www.google.com/chart?chs=200×200&chld=M|0&cht=qr&chl=otpauth://totp/MyLabel?secret=THESECRET 400 (Bad Request) 生成QR码的代码: try key = crypto.randomBytes(10).toString('hex') catch error console.log "error generating code: #{error}" encoded = base32.encode(key) label = encodeURIComponent "MyLabel" uri = "otpauth://totp/#{label}?secret=#{encoded}" url = "https://www.google.com/chart?chs=200×200&chld=M|0&cht=qr&chl=#{uri}" 插入图像的客户端jQuery: img = $("<img>").attr("src", url) $("#qr_box").html("") $("#qr_box").append(img) 这会导致页面上的以下HTML: <img src="https://www.google.com/chart?chs=200×200&amp;chld=M|0&amp;cht=qr&amp;chl=otpauth://totp/MyLabel?secret=THESECRET"> 图像可以打开一个新的标签没有问题。 该图像只能在我的页面大约1/10时间成功显示; 其他时间铬给400.我在这里错过了明显的东西?

validation多个Mongoose模式属性?

我试图做的经典事情,以确保用户的用户名不同于他们的密码,在Nodejs / Mongoose。 我认为使用单独的validationfunction会很好,但是我不知道如何去做。 到目前为止,我已经使用了Alex Young记事本教程中的模型代码 。 他创build了我重新使用的虚拟password属性。 我有如下的基本validation: function validatePresenceOf(value) { return value && value.length; } User = new Schema({ 'username': { type: String, validate: [ validatePresenceOf, 'a username is required', ], index: { unique: true } }, }); 我将如何允许validation者访问其他属性?

Sails.js中的密码确认和外部模型validation

也许有一天我一直在玩Sails。 我试图围绕在Sails.js中进行大量validation的最佳方式进行讨论。 这是情景: Registration Form: Username: _______________ E-Mail: _______________ Password: _______________ Confirm: _______________ 用户input: 一个正确的电子邮件 一个已经存在的用户名 两个密码不匹配 期望的结果: Username: _______________ x Already taken E-Mail: _______________ ✓ Password: _______________ ✓ Confirm: _______________ x Does not match 要求,几个要点: 用户input的每一个方面都会收到所有的错误信息 (不仅仅是第一个)。 他们不是模糊的 (“用户名已被占用”或“用户名必须至less有4个字母”比“无效的用户名”更好) 内置的模型validation显然不会负责检查匹配的密码确认(SRP) 我认为我需要做的是: UserController的: create: function(req, res) { try { // use a UserManager-Service to keep […]

如何避免在Joivalidation请求时Hapi.js发送400错误

Hapi.jsvalidation与Joi + failAction问题。 情况 我们希望使用Hapi构build一个“ 传统的 ” 仅 服务器端渲染的应用程序。 我试图了解如何避免在Joivalidation失败时将“ 原始 ” 400错误返回给客户端: 我们想拦截这个“ 不允许为空的电子邮件 ” validation错误,并将其显示在客户端的html模板中,而不是简单地返回400错误。 @AdriVanHoudtbuild议我们应该: “看看http://hapijs.com/api#route-options下的failAction” 所以我们添加了failAction: 'log'到/registerpath处理器: { method: '*', path: '/register', config: { validate: { payload : register_fields, failAction: 'log' } }, handler: register_handler } 请参阅: server.js中的代码 register_handler是: function register_handler(request, reply, source, error) { console.log(request.payload); console.log(' – – – – […]

Mongoose布尔validation没有用,如果提供一个string

为了更容易validation我的input, 我试图确保只有在特定字段设置为true的情况下才能创buildmongoose文档 (这个字段当然总是如此,如果文档实际上是正确创build的,那就是为了报告原因)。 这是一个简化的poc: var mongoose = require('mongoose') mongoose.connect('mongodb://localhost:27017/playground') var Schema = mongoose.Schema var TestSchema = new Schema({ testField: { type: Boolean, required: true } }) // Try to ensure, that testField can only be true TestSchema .path('testField') .validate(function (testField) { return (testField === true || testField === 'true') }, 'Test-field must be true!'); var […]

Nodejs Restful Auth

我是新的Nodejs,我正在做一个resttify服务器。 所以,我有一个场景,我有很多设备(具有唯一的ID)通过rest更新数据。 我想要做的是validation他们,并给一个身份validation令牌。 像这样的东西: 第一次:uri / api / auth – >得到令牌。 然后:使用令牌和更新产品的uri / api / product / …. – > 我试图使用restify-node-token,但我没有成功。