您的位置:首页 > Web前端 > Node.js

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

2017-10-13 18:53 615 查看

本例中运用到的框架包含有: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;


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



前台开始注册用户:



注册成功:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: