Tag: validation

inputvalidation,消毒和服务层

我试图保持我的控制器操作尽可能轻量级,所以我正在实现服务层。 现在我已经通过validation和消毒。 我知道validation应该在服务层完成,但是如何进行消毒呢? 当有validation错误时,我想重新渲染input数据。 //userService.js function function register(data, callback) { if (!data) { return callback(new Error('Here some error…')); } /* Sanitize and validate the data */ /* Method #1 */ //If not valid then call back with validationErrors if (notValid) { return callback({ validationErrors: { 'username': 'Username is already in use.', 'email': 'Invalid characters.', } […]

validationhtml代码与node.js

我想validationnode.js应用程序中的一些HTML文档。 我已经find了一些node.js模块,比如w3cjs和w3c-validate,但似乎只能在线工作。 因为我必须检查很多小的HTML文件,所以我正在寻找一种脱机工作的解决scheme,无需互联网。 你知道如何将W3C标记validation器集成到节点应用程序中吗? 或者有什么其他的方法来检查HTML语法? 也许像DOMparsing器?

Sequelize findOrCreate给我一个SequelizeUniqueConstraintError:validation错误

所以我试图将多个集合请求链接在一起 – 检查数据库中是否存在授权。 然而,当我使用sequelize findOrCreate方法时,我得到一个SequelizeUniqueConstraintError:validation错误,我不明白为什么。 这是我的基金模式。 module.exports = function(sequelize, DataTypes) { var Fund = sequelize.define("funds", { id: { type: DataTypes.INTEGER, field: 'id', primaryKey: true, unique: true, autoIncrement: true, }, title: { type: DataTypes.TEXT, field: 'title' }, tags: { type: DataTypes.ARRAY(DataTypes.TEXT), field: 'tags' }, minimum_age: { type: DataTypes.INTEGER, field: 'minimum_age' }, maximum_age: { type: DataTypes.INTEGER, field: […]

Angular 2authentication状态

我已经使用Angular 2实现了一个login页面。login后,我从服务器获取了jsonwebtoken,userId,userRole,userName。 我将这些信息存储在localstorage中,以便我可以随时访问它,并在用户刷新页面时保持login状态。 AuthService.ts import {Injectable} from "@angular/core"; @Injectable() export class AuthService { redirectUrl: string; logout() { localStorage.clear(); } isLoggedIn() { return localStorage.getItem('token') !== null; } isAdmin() { return localStorage.getItem('role') === 'admin'; } isUser() { return localStorage.getItem('role') === 'user'; } } 要检查login状态,我只是检查是否存在本地存储令牌。 由于localstorage是可编辑的,因此在localstorage中添加任何标记都会绕过login页面。 同样,如果客户端在本地存储中编辑用户angular色,则客户端可以轻松访问pipe理员或用户页面。 我如何解决这些问题? 这更像是一个普遍的问题,我想知道网站如何保持login状态? PS NodeJS服务器端login代码来生成jsonwebtoken const jwt = require('jsonwebtoken'); const User = […]

使用Redis和Socket.io进行用户authentication

我正在学习使用redis和socket.io,考虑到他们拥有的优势。 特别是,我正在尝试使用它们进行用户身份validation。 我将不胜感激,如果有人解释一个简单的代码给我一个初步的推动。 我使用的框架是明确的。 我读到express和socket.io不能直接对话。 我发现了一个关于这个Socket.IO身份validation的相关链接,但我不太了解数据库事务是如何从那里给出的答案发生的。

Node.js,Express和Jade – 表单

我正在使用Node.js,Express和Jade,我试图找出如何发布,validation和处理表单数据。 在我的翡翠文件中,我创build了一个联系表单: div#contact-area form(method='post',action='') label(for='name') Name: input(type='text',name='name',id='name') label(for='email') Email: input(type='text',name='email',id='email') input(type='submit',name='submit',value='Submit').submit-button 然后,我使用模块“express-validator”来validation表单,如下所示: var express = require('express') ,routes = require('./routes') ,http = require('http') ,path = require('path') ,expressValidator = require('express-validator') ; var app = express.createServer(); app.configure(function(){ app.set('views', __dirname + '/views'); app.set('view engine', 'jade'); //not needed if we provide explicit file extension on template references eg res.render('index.jade'); app.use(express.bodyParser()); […]

NodeJS Mongoose Schema“保存”functionerror handling?

我有一个问题向用户输出一个错误,使用res.send(err),这是在Mongoose用户模式的“保存”function的callback中被调用。 我想要注意的是,当我使用console.log(err)时,它显示预期的错误(如用户名太短),但res.send在PostMan发送请求时使用POST值输出“{}”应该会导致错误。 另外我想知道是否应该在我的路由器或我的Mongoose用户模式.pre函数进行inputvalidation? 把validation看起来是正确的,因为它使我的节点路由器文件更清洁。 这里是有问题的代码… 应用程序/路由/ apiRouter.js var User = require('../models/User'); var bodyParser = require('body-parser'); … apiRouter.post('/users/register', function(req, res, next) { var user = new User; user.name = req.body.name; user.username = req.body.username; user.password = req.body.password; user.save(function(err) { if (err) { console.log(err); res.send(err); } else { //User saved! res.json({ message: 'User created' }); } }); }); […]

仅当另一个具有特定值时,才需要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){ […]