nodejs使用body-parser解析表单数据

来源:互联网 发布:网络语言暴力的案例 编辑:程序博客网 时间:2024/06/05 02:56

本例中运用到的框架包含有:express、html、body-parser、mongoose

前台运用了ejs模板引擎,后台nodejs用的express框架,数据库用mongoose操作mongodb,以及body-parser中间件解析表单数据,废话不多说,代码献上:
register.html main code:

<div class="box">    <form action="/" method="POST">    <ul>        <li>            <input type="text" placeholder="用户名" id="username" name="username">        </li>        <li>            <input type="password" placeholder="密码" id="userPwd" name="userpwd">        </li>        <li>            <input type="password" placeholder="重新输入密码" id="reUserPwd">        </li>        <li>            <input type="submit" value="注册" onclick="return checkLogin();">        </li>    </ul>    </form>    <script type="text/javascript">    //表单提交验证    function checkLogin(){        var aa=document.getElementById('username');        var bb=document.getElementById('userPwd');        var cc=document.getElementById('reUserPwd');        if(aa.value=='' || aa.value==null){            alert('请输入用户名!');            return false;        }else if(bb.value=='' || bb.value==null){            alert('请设置密码!');            return false;        }else if(cc.value=='' || cc.value==null){            alert('请再次输入密码!');            return false;        }else if(cc.value != bb.value){            alert('两次密码不一致!');            return false;        }else{            return true;        }    }    </script></div>

app.js main code:

// 模块依赖var express=require("express");var app=express();var bodyParser = require('body-parser');var path = require('path');var http = require('http');//静态文件设置app.use(express.static(path.join(__dirname, 'public')));//表单数据解析app.use(bodyParser.json());app.use(bodyParser.urlencoded({ extended: true }));//视图设置app.set('views', path.join(__dirname, 'views'));app.set('view engine', 'html');app.engine('html', require('ejs').renderFile);  //路由配置var register = require('./routes/register');var login = require('./routes/login');var user = require('./routes/user');app.use("/", register);app.use("/", register);app.use("/login", login);app.use("/user", user);var server = app.listen(8081, function () {  var host = server.address().address  var port = server.address().port  console.log('server start on 127.0.0.1:8081');})

register.js main code:

var express=require("express");var app = express();var router = express.Router();var user=require('../db/Shema');router.get('/', function (req, res) {    // console.log(req);    res.render('register',{title: '登录页'});})router.post('/', function (req, res) {    var users = req.body;    //打印表单数据    console.log(users);    var User = new user({        name: users.username,        password: users.userpwd    });    user.findOne({ name: users.username }, function(error, doc){    //添加容错措施        if(error){            console.log('系统查找错误!请重试!');            res.send("<script>alert('系统查找错误!请重试!');location.href='/register';</script>");        }else if(doc){            console.log("用户已存在!");            res.send("<script>alert('用户已存在!');location.href='/register';</script>");        }else{            user.create({ name: users.username,password: users.userpwd }, function(err, doc1){                if(err){                    console.log('系统数据保存错误!请重试!');                    res.send("<script>alert('系统数据保存错误!请重试!');location.href='/register';</script>");                }else{                    console.log('注册成功!');                    res.send("<script>alert('注册成功!');location.href='/user';</script>");                }            })        }    })})module.exports = router;  

这里附加一个数据schema的代码:
Schema.js main code:

var mongoose = require('mongoose');var DB_CONN_STR='mongodb://localhost:27017/xixi';mongoose.connect(DB_CONN_STR);mongoose.connection.on('connected', function(){  console.log('mongoose connection open to ' + DB_CONN_STR);});mongoose.connection.on('error', function(err){  console.log('mongoose connection error ' + err);})mongoose.connection.on('disconnected', function(){  console.log('mongoose connection disconnected.');})var userSchema = new mongoose.Schema({  name: {    type: String,    required: true   },   password: String,   admin: {    type:Boolean,    default: false   }});var User = mongoose.model('User', userSchema);module.exports = User;

运行一下看看结果,运行服务器,走起:

运行服务器

前台开始注册用户:

前台注册用户

注册成功:

注册成功
后台注册成功