【问题标题】:express-form custom validation快速表单自定义验证
【发布时间】:2013-03-25 13:46:48
【问题描述】:

使用Express-form 模块来验证输入。具体看custom methods是否可以编写一个验证函数,其结果将取决于另一个字段。

或者更确切地说,我想要实现的是,如果在下拉列表中选择了某个值,则需要一个字段,而其他值则不需要。

至于“你试过什么”cmets。我没有,阅读文档我不知道如何开始。

【问题讨论】:

  • 有一个字段的required() 方法,但就目前而言,不,你不能做你试图用那个模块完成的事情,相反你可以尝试其他模块>允许.custom()
  • 是的,required() 我已经到位,这更像是required_if()。对这样的模块有什么建议吗?

标签: node.js express validation


【解决方案1】:

使用 express-form 验证 Node-Express 表单

首先安装 express-form 模块

命令:- npm install express-form --save

第二次安装快闪

命令:- npm install express-flash

那么

index.js

var express = require("express");
var app = express();
var path = require('path');
var form = require('express-form');          
var field = form.field;                      
var flash = require('express-flash');        


var port = process.env.PORT || 5000 ;  

app.use(flash()); 

app.get('/registration', function (req, res) {
    res.render('pages/registration', {
        messages : req.flash('error')
    });
}); 

app.post('/submit', 

form(
            field("firstname").trim().required(),
            field("lastname").trim().required(),
            field("email").trim().required().isEmail()
    ),

function (req, res) {

    if(!req.form.isValid) 
    {
        req.flash('error', req.form.errors);
        res.redirect('/registration');
    }
    else
    {
        console.log("Form submitted successfully...")
    }

});

app.listen(port);

注意:-

在上面的代码中我使用的是'ejs'模板引擎

更多帮助click here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-18
    • 1970-01-01
    • 2016-11-18
    • 1970-01-01
    相关资源
    最近更新 更多