Tag: validation

服务器端数据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,但我没有成功。

Mongoose自定义validation更新的几个字段

首先, 这没有帮助。 比方说,我们有一个用户模型: const schema = new mongoose.Schema({ active: { type: Boolean }, avatar: { type: String } }); const User = mongoose.model('User', schema); 当我们更新它(设置一个化身): // This should pass validation User.update({ _id: id }, { $set: { avatar: 'user1.png' } }); 我们希望根据当前(或更改)的active属性值进行validation。 情况1 active是false 我们不应该能够设置头像 – 它不应该通过validation 案例#2 active是true 我们应该能够设置头像 – 它应该通过validation 思路 使用自定义validation器 const […]

跳过或禁用mongoose模式save()调用的validation

我正在寻找创build一个新的文件,保存到mongodb无论有效。 我只是想暂时跳过模型保存调用mongoosevalidation。 在我的CSV导入的情况下,CSV文件中不包含一些必填字段,特别是其他文档的引用字段。 然后,下面的示例不会传递mongoosevalidation所需的检查: var product = mongoose.model("Product", Schema({ name: { type: String, required: true }, price: { type: Number, required: true, default: 0 }, supplier: { type: Schema.Types.ObjectId, ref: "Supplier", required: true, default: {} } })); var data = { name: 'Test', price: 99 }; // this may be array of documents either product(data).save(function(err) […]

如何在JavaScript中validationEAN / GTIN条形码

如何检查string是否是JavaScript中的有效EAN / GTIN条形码? 我需要检查EAN8,EAN12,EAN13,EAN14,EAN18以及GTIN12,GTIN13,GTIN14。