nodejs实现登录注册系统
对上一次的功能进一步的完善,将用户的数据储存在本地数据库,实现登录的功能,采用session机制记录登录信息,使得已登录的用户保持登录状态
目录结构
目录结构比较简单,算是一个小的demo
- model是数据层,将采用mongoose创建数据库模型,并提供接口
- public是静态资源,随http发送请求并加载
- routes是控制层,包含路由控制和逻辑处理
- views是视图层,主要有三个页面
- signin是入口文件
数据处理
Mongoose是一个提供了MongoDB地相映射的Node.js库,创建一个数据库模型schema,并将其发布成为model,统一数据模型并能进行操作
var mongoose = require("mongoose");
mongoose.connect('mongodb://localhost/test');
var Schema = mongoose.Schema;
//骨架模版
var userSchema = new Schema({
username : String,
password : String,
id : String,
phone : String,
email : String
})
var User = mongoose.model('User', userSchema);
module.exports = User;
路由控制
主要是由routes.js控制,注意要加载静态资源和对session的设置,注册中间件
var express = require('express')
var routes = require('./server')
var app = express();
var bodyParser = require('body-parser');
var session = require('express-session')
// 创建 application/x-www-form-urlencoded 编码解析
var urlencodedParser = bodyParser.urlencoded({ extended: false })
module.exports = function(app) {
// 设置页面的跳转还有session的设置
app.use(session({ secret: 'keyboard cat', cookie: { maxAge: 60000 }}))
app.use('/',routes);
app.use('/regist',routes);
app.use('/logout',routes);
app.use('/info',routes);
app.use('/check', routes);
app.use(express.static(__dirname +