Tag: validation

“无法validation”与promised-mongo

我使用Promised-Mongo从NodeJS后端代码连接MongoDB和Promises。 它工作正常,直到我启用MongoDB的客户端访问控制。 当我运行这个代码时,我得到“无法validation”消息“: var pmongo = require('promised-mongo').compatible(); var db = pmongo('myusername:mypassword@localhost/mydb', ['candidates']); db.candidates.save(req.body) .then(function () { // never reached here }) .catch(function (e) { // it reached here, where e.message says "could not authenticate" }); 纯粹的MongoDB代码(即没有承诺…)工作正常: var mongodb = require('mongodb'); var uri = 'mongodb://myusername:mypassword@localhost/mydb'; mongodb.MongoClient.connect(uri, function (err, db) { if (err) { // never reached […]

提示inputvalidation

上下文是Node上的MS Bot框架。 我需要自定义validation来自Prompt.text或Prompt.Number的input。 我一直在看例子和文档。 我用DialogAction.validatePrompt()实现了一个快速的例子,它工作正常,但有问题,我不能(至less我不知道如何)自定义消息,以防止validation失败。 validation可能由于许多原因而失败,并且能够基于失败原因select响应消息将是非常好的。 我也看到了基本的自定义提示示例: (https://github.com/Microsoft/BotBuilder/tree/master/Node/examples/basics-customPrompt) ,它使用和IntentDialog获得所需的行为。 它还提到它是基本validation的示例的替代品。 我的问题是: 哪一个是推荐使用,validatedPrompt或IntentDialog方法? validatedPrompt()将被弃用吗? validatedPrompt()是否提供自定义消息的机制?

在Mongoose模型中运行一个字段的validation

我需要运行一些特定字段的validation器,而不影响模型validation状态。 如何才能做到这一点? 上下文是有一个validation钩用于validation一个字段( foo ),但它需要确保( bar )是第一个好的。 … bar: { required: true, type: Number, min: 2, max: 10, validator: isInteger } … function validateFoo(foo, bar) { // the code below will throw if bar is not an integer between 2 and 10 … } schema.pre('validate', function (next) { if (/* check if model.bar is valid […]

使用len和setter将Sequelize密码validation失败

我设置了如下的password字段: password: { type: Sequelize.STRING, validate: { len: { args: [7, 42], msg: "The password length should be between 7 and 42 characters." } } } 这工作。 但是,当我添加set处理程序时,要将密码转换为md5哈希,validation将始终失败(以上面设置的消息结束): password: { type: Sequelize.STRING, validate: { len: { args: [7, 42], msg: "The password length should be between 7 and 42 characters." } }, set (pass, key) […]

创build帐户电子邮件validation无效

我想这样做,当用户注册我的网站,他们得到一封电子邮件,说他们需要validation他们的电子邮件使用该网站。 它目前发送带有令牌的电子邮件,但是当我去到确认链接时,它失败, status 404 。 路线 app.post('/confirmation/:token', users.confirmationPost); 需要控制器 var users = require('../controllers/users-controller'); confirmationPost exports.confirmationPost = function (req, res, next) { req.assert('email', 'Email is not valid').isEmail(); req.assert('email', 'Email cannot be blank').notEmpty(); req.assert('token', 'Token cannot be blank').notEmpty(); req.sanitize('email').normalizeEmail({ remove_dots: false }); // Check for validation errors var errors = req.validationErrors(); if (errors) return res.status(400).send(errors); // Find […]

节点validation器和asynchronousvalidation

我正在研究我的第一个Node.js项目,并且偶然发现了一个问题。 我使用节点validation器进行inputvalidation,并使用Sequelize作为ORM。 asynchronousvalidation的问题 我正在尝试编写一些自定义validation,以查看给定的用户名是否仍然可用。 唯一的问题是:Sequelize中的查找器是asynchronous的,而node-validator没有内置的asynchronousvalidation支持。 我尝试了两种方法 使用这里描述的callback 使用Sequelize的内置validation 我对上述两种方法都不满意。 如果使用Sequelize的内置validation,使用callback将非常迅速,并且还有其他问题。 显然,在Sequelize中没有办法同步使用发现者,这将是我的解决之道。 现在怎么办? 我有什么select,以清洁的方式解决这个问题? 理想情况下,我想我的validation过程看起来像这样: req.sanitize('username').trim(); req.check('username', 'Your username must be between 4 and 32 characters long').len(4, 32); req.check('username', 'That username is already taken').usernameIsAvailable(); 我怎样才能干净地实现asynchronousvalidation? 感谢您的帮助!

Express中的服务器端validation与单页Angular应用程序兼容

我想执行服务器端validation,最好用expressValidator。 保存资源时,我检查一下是否有效。 如果不是有效的,我应该返回什么? 有例子: http : //blog.ijasoneverett.com/2013/04/form-validation-in-node-js-with-express-validator/ https://github.com/ctavan/express-validator 不幸的是,我无法从中得出答案。 在Angular中,我正在使用$ resource服务。 当我做了一个保存,并有一个validation错误,服务器应该如何发送回来? 请注意,这是一个单页面应用程序。 另外,我应该如何处理客户端? 这在技术上是成功的电话吗? 请,我不寻找任何瞬间,阿贾克斯,检查每场解决scheme。 我想提交保存,如果有问题,我想返回错误,以便Angular可以处理它们。 这不需要是完美的解决scheme,只是让我走上正轨。 目前我没有用特殊的方式处理Angular代码:Controller: $scope.saveTransaction = function (transaction) { transactionData.saveTransaction(transaction); } 服务 saveTransaction: function(transaction) { return resource.save(transaction); } 服务器端代码如下所示: app.post('/api/transactions', function (req, res) { var transaction; req.assert('amount', 'Enter an amount (numbers only with 2 decimal places, eg 25.50)').regex(/^\d+(\.\d{2})?$/); var errors […]

通过callback或mongoose模型validationPassportJS?

我正在为注册和login用户身份validation设置护照。 现在我看到我可以通过callbackvalidation信息,但是我也可以validation用户模型中的信息。 例如,如果我想使所需的电子邮件字段,那么我可以执行以下操作: validation与护照 // Create the local sign up with Passport passport.use('local-signup', new LocalStrategy({ usernameField : 'userEmail', // Email Field passwordField : 'userPassword', // Password Field passReqToCallback : true }, function(req, email, password, done) { // Find a user with this email User.findOne({ "local.email": email }, function(err, user) { if (err) throw err; // […]

mongoose纲要与Mongovalidation器

Mongo 3.2有文档validation,我们可以使用相同的定义一个模式,而不是使用mongoose这样做。 例如 : mongoose userschema = mongoose.Schema({ org: String, username: String, fullname: String, password: String, email: String }); MongoDB的 db.createCollection( "example",{ validator:{ $and:[ { "org":{$type:"string"}}, { "username":{$type:"string"}}, { "fullname":{$type:"double"}}, {"password":$type:"string"}}, {"email":{$type:"string"}} ] }, validationLevel:"strict", validationAction:"error" }) 这些拖曳之间的区别是什么,我们可以提供一个可选的字段使用validation程序在架构?

Express-Validator中的本地化stringvalidation

我使用expressvalidation程序版本“2.19.1”进行validation。 我需要用不同的语言validation名字。 我使用的是isAlpha(),默认是英文字母。 req.checkBody('name', 'Invalid name').isAlpha(); 我可以更改快速validation器的设置,允许德文特殊字母ä,ö和ü通过validation吗? 提前致谢。