首页 > 语言 > JavaScript > 正文

Node+Express+MongoDB实现登录注册功能实例

2024-05-06 15:18:13
字体:
来源:转载
供稿:网友

注入MongoDB 依赖

var mongoose = require("mongoose");

由于需要进行表单处理,需要用到bodyParser中间件

bodyParser模块来做文件解析,将表单里的数据进行格式化

var bodyParser = require("body-parser"); app.use(bodyParser.json());app.use(bodyParser.urlencoded({ extended: true }));

登录后将用户信息保存下来,需要使用session中间件,它依赖cookieParser中间件

var cookieParser = require('cookie-parser');var session = require('express-session');ar mongoStore = require('connect-mongo')(session);var dbUrl = 'mongodb://localhost/express';app.use(cookieParser()); app.use(session({ secret:'express', store: new mongoStore({ url: dbUrl, collection: 'sessions' })}));

使用jade模板

layout.jade

doctype htmlhtml head  meta(charset='utf-8')  title #{title}  include ./includes/head body  include ./includes/header  block content

head.jade

link(href='css/main.css', rel='stylesheet')link(href="/libs/bootstrap/dist/css/bootstrap.min.css" rel="external nofollow" , rel="stylesheet")script(src="/libs/jquery/dist/jquery.min.js")script(src="/libs/bootstrap/dist/js/bootstrap.min.js")

header.jade

.container .row  .page-header   h1 #{title}.navbar.navbar-default.navbar-fixed-bottom .container  if user   p.navbar-text.navbar-right    span 欢迎你,#{user.name}    span  |     a.navbar-link(href="/layout" rel="external nofollow" ) 退出登录  else   p.navbar-text.navbar-right    a.navbar-link(href="/signup" rel="external nofollow" , data-toggle="modal", data-target="#signupModal") 注册    span  |     a.navbar-link(href="/login" rel="external nofollow" , data-toggle="modal", data-target="#signinModal") 登录

signup.jade

include ../layout block content  form.form-horizontal( role="form", method="POST", action='/user/signup')   .form-group    label.col-sm-2.control-label(for="signupName") 用户名    .col-sm-10     input#signupName.form-control(type="text", name="user[name]", placeholder="输入用户名")   .form-group    label.col-sm-2.control-label(for="signuppassword") 密码    .col-sm-10     input#signuppassword.form-control(type="password", name="user[password]", placeholder="输入密码")   .form-group    label.col-sm-2.control-label(for="signupemail") 邮箱    .col-sm-10     input#signupemail.form-control(type="email", name="user[email]", placeholder="输入邮箱")   .form-group    .col-sm-offset-2.col-sm-10     button.btn.btn-default(type="submit") 完成注册

配置路由

登录注册页面

// 注册页面app.get('/signup', function (req,res) { res.render('signup', { title: '注册' });});// 登录页面app.get('/login', function (req,res) { res.render('login', { title: '登录' });});            
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选