nodejs完整登陆交互
来源:互联网 发布:linux环境变量作用 编辑:程序博客网 时间:2024/05/21 17:44
作者:短工邦技术部 - 陈文哲
nodejs入门之后,其实和其它服务端语言的使用逻辑是类似,需要什么就找什么资料就行了。前面的章节主要是各个组件的使用方法,这次联合起来做一个登陆的交互,因为空闲时间不多,我就直接从项目中抽取最简洁的代码贴出来了,可能会报错哦。
前端代码
form(method='POST' action='/Account/login') p账号: input(type='text' name='UserName') p密码: input(type='password' name='Password') input(type='submit' value='登录')
点击登录后,会把表单数据POST到/Account/login,所以我们要新建一个ROUNT来处理这个表单数据
ROUNT代码
//在server.js处理请求//var app = express();var accountROUTE = require('./ROUTE/AccountROUTE')app.post('/Account/login',accountROUTE.login)
在ROUNT目录下新建AccountROUTE.js,代码如下
exports.login = function(req,res){ var User = req.body; //见body-parser段落 if(User.UserName && User.Password) { //findByKeyValue见UserMODEL userMODEL.findByKeyValue({"UserName":User.UserName}, function(err,result) { if( result.length <= 0 ) { //"不存在该用户" } else{ if(User.Password != result[0].Password){ //"密码错误" } else{ req.session.user = result[0];//见session段落 //登陆成功 } } }); } else{ //"请填完所有信息项",res); }}
body-parser
简单说,这个可以把前端POST过来的表单数据直接转换到req.body,是一个JSON对象,Key值就是前端的name,Value值就是前端的value
//安装npm install body-parser
//在服务入口端server.js新增代码var bodyParser = require('body-parser');app.use(bodyParser.json());app.use(bodyParser.urlencoded({ extended: false }));
UserMODEL
//完整的MODEL代码var Schema = require('mongoose').Schema;var MODEL = Schema({ UserName: String, Password: String, Type: String, Name: String, Phone: String, CompanyName: String, Intro: String, meta:{ createdAt:{ type:Date, default:Date.now() }, updatedAt:{ type:Date, default:Date.now() } }}, {collection: "User"});//定义该MODEL的能提供的数据操作MODEL.statics = { //KeyValue是一个JSON对象,可以根据需求自由传入 findByKeyValue : function( KeyValue, cb ) { return this.find(KeyValue).exec( cb ); }};//每一次保存之前会调用这个方法;MODEL.pre("save",function(next) { if(this.isNew){ this.meta.createdAt = this.meta.updatedAt = Date.now(); } else{ this.meta.updatedAt = Date.now(); } next();});/* global db */module.exports = db.model('UserMODEL', MODEL);
session
npm install cookie-parser
var session = require("express-session");var cookieParser = require('cookie-parser');app.use(cookieParser());//内存存储方式使用sessionapp.use(session({ secret : "mysecret", cookie: {maxAge: 8000000 }, //即8000s后session和相应的cookie失效过期 resave: false, saveUninitialized: true,}));
2 0
- nodejs完整登陆交互
- nodejs完整登陆交互
- NODEjs完整项目实践
- nodejs 与mysql 交互
- Nodejs和R交互
- Nodejs与MySQL交互
- 20160810笔记 nodejs交互
- 一个完整的Nodejs项目 完成连接数据库(MySQL),登陆、注册功能 session的使用 和发送邮件
- NodeJS与Mysql的交互
- nodejs+ajax实现数据交互
- C++与Nodejs的交互
- nodejs与C++交互(二)
- NodeJs与MySQL交互数据
- nodejs 与redis交互说明
- PHP登陆页面完整代码
- Ajax Servlet交互完整例子
- 史上最完整交互设计基本原则
- 史上最完整交互设计基本原则
- 请谈谈你对CRM的理解
- poj 2653 Pick-up sticks (线段交)
- c++ 格式读取文件
- iOS工程里添加C文件造成的编译错误
- Android 针对个人开发者的bmob支付
- nodejs完整登陆交互
- 几大最短路径算法比较(Floyd & Dijkstra & Bellman-Ford & SPFA)
- Android Studio更换现名图片导致编译失败
- address code pre ul-li div table
- LeetCode *** 71. Simplify Path (getline的使用)
- C枚举类型小结
- 2015年终总结 更大的变化
- 堆和栈的区别
- Sublime Text3常用快捷键