Node.js+Express+MongoDB数据库实现网页注册登入功能

                通过 Node.js + Express + MongoDB 实现网页注册账号 和 登入账号的功能

项目准备:

  1: 事先准备好项目的页面 (首页页面 index.html)(登入页面 login.html) (注册页面 register.html)

  2:    安装好 Node.js 需要使用的第三方模板

  3:  设计路径设计

  4:  理清功能需求

  5:  创建 app.js  router.js   mgdb.js 三个 js 文件  和 public 和 views 文件夹

作用:

  app.js 文件用于开启服务器

  router.js 文件用于请求路径设计

  mgdb.js 文件用于连接 MongoDB数据库

  public文件夹用于存放公共文件 例如:三个页面的 css样式文件    

  views文件夹用于存放3个准备要使用到的页面

直接上代码说话把:

在 app.js文件中:

// 引入模板
var express = require(‘express‘);// 引入第三方模块 用于获取POST请求数据
var bodyParser = require(‘body-parser‘);

// 加载 router.js 文件
var router = require(‘./router.js‘);

// 创建app
var app = express();

// 将 node_modules 和 public 的文件公开
app.use(‘/node_modules‘, express.static(‘./node_modules/‘));
app.use(‘/public‘, express.static(‘./public/‘));

// 用Express使用引擎模板
app.engine(‘html‘, require(‘express-art-template‘));

// body-parser 配置
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());

// 把路由容器挂载到 app 服务中
app.use(router)

app.listen(3000, function(){
    console.log(‘服务器启动成功了,可以通过 http://127.0.0.1:3000/ 来进行访问‘);
});

在 router.js 文件中

// 引入模板
var fs = require(‘fs‘);
var express = require(‘express‘)
// 引入 mgdb.js文件
var Mgdb = require(‘./mgdb.js‘)

// 1:创建一个路由容器
var router = express.Router()

// 2: 把路由都挂载到 router 路由容器中
/*首页页面*/
router.get(‘/‘, function(req,res) {
    res.render(‘index.html‘)
})

/*注册页面*/
router.get(‘/register‘, function(req,res) {
    res.render(‘register.html‘)
})

/*登入页面 */
router.get(‘/login‘, function(req,res) {
    res.render(‘login.html‘)
})
/* 注册页面 提交数据 POST*/
router.post(‘/login‘, function(req,res) {
    // 把数据保存在 MogoDB 数据库中
    // req.body 就是保存的数据内容
    new Mgdb(req.body).save(function(err) {
        if (err) {
            return res.status(500).send(‘Server error.‘)
        }
        res.redirect(‘/login‘)
    })
})

/*登入页面 POST*/
router.post(‘/‘, function(req,res) {
    // 输入数据后 获取数据 与数据库的数据比对
    var username = req.body.username
    var password = req.body.password
    Mgdb.findOne({username:req.body.username, password:req.body.password}, function(err,ret) {
        if(err) {
            return res.status(500).send(‘Server error.‘)
        } else {
            // 如果账号或者密码有误 ret 就是null
            if(ret === null) {
                res.send(‘账号或密码有误‘)
            } else {
                // 如果账号密码正确 ret 返回的就是数据库中的数据对象
                // 获取这个用户名 渲染到首页页面
                var name = ret.username
                res.render(‘index.html‘, {
                    name: name
                })
            }
        }

    })
})

// 3. 把 router 导出
module.exports = router

在 mgdb.js 文件中

// 引入模板
var mongoose = require(‘mongoose‘)

// 定义一个 schema
var Schema = mongoose.Schema

// 1. 连接数据库
// 指定连接的数据库不需要存在,当你插入第一条数据之后就会自动被创建出来
mongoose.connect(‘mongodb://localhost/login‘)

// 2. 设计文档结构(表结构)
var userSchema = new Schema({
  username: {
    type: String,
    required: true // 必须有
  },
  password: {
    type: String,
    required: true
  },
  mobile:{
      type: Number,
      required: true
  }
})

// 4. 当我们有了模型构造函数之后,就可以使用这个构造函数对 users 集合中的数据进行操作了(增删改查)

// 3. 将文档结构发布为模型
// 直接导出模型构造函数
module.exports = mongoose.model(‘Mgdb‘, userSchema)

  写好着三个主要文件后,通过 cmd  执行 app.js 文件,在浏览器可以通过   http://127.0.0.1:3000/  访问来测试

效果图如下:

如果填写密码或者用户名错误的话就会响应  账号或密码有误   这就随便的实现下功能没有设计页面了

这就是整个 网站页面的 账号注册 和 账号登入的基本功能, 实现整个小demo功能的思路还是比较清晰的。作为一个正着学习前端知识的小白,为了实现整个小demo,事先准备了好了路由设计来保证自己的思路清晰,大概写了一个半小时把。

2019-12-14   19:50:47

原文地址:https://www.cnblogs.com/ye16p/p/12038402.html

时间: 2024-08-08 13:54:07

Node.js+Express+MongoDB数据库实现网页注册登入功能的相关文章

基于 Node.js + Express + mongoDB + Bootstrap 搭建的电影网站

电影网站 ?? GitHub: https://github.com/bxm0927/movie-website 此项目是基于 Node.js + Express + mongoDB + Bootstrap 搭建的电影网站. 主要功能模块: 一期:前台电影展示页.电影详情页.后台电影管理中心(电影录入.电影修改) 二期:用户登录注册注销功能.用户识别和持久化.后台用户管理中心(用户录入.用户修改).电影评论 <!-- more --> 图片预览 技术栈 [前端] HTML/CSS/JS:亘古不

Node.js Express+Mongodb 项目实战

Node.js Express+Mongodb 项目实战 这是一个简单的商品管理系统的小项目,包含的功能还算挺全的,项目涵盖了登录.注册,图片上传以及对商品进行增.删.查.改等操作,对于新手来说是个很不错的练手项目,分享给大家. GitHub源码:https://github.com/oceanMin/cms 项目前准备 安装node.js 安装express 安装mongoDB 章节目录 快速开始 快速开始 模块 express商品管理系统介绍 框架搭建.ejs .express.static

node.js+express+mongodb

主要是想用node.js链接mongodb,用的是mongoose.用ejs引擎,扩展到.html比较容易 小例子结构简单,框架清晰. 提交方法 路径 方法 作用 get add     post add   提交记录 get del     get modify   转到修改页面 post modify   修改记录 入口:mongodb.js,数据模型:model.js,(这两个在同一级目录) 路由:mong_ro.js(引入model.js用../) 三个页面index.html,add.

Node.js(express) + MongoDB(mongoose) 简单开发(一)

前言: express作为一个Node框架,很适合新学习Node的同学,加上mongoose的数据处理,堪称完美~ 闲话少说,步入正题. 我的系统环境: Win7 64bit Nodejs: v0.10.35 Npm: 1.4.28 IDE:webstorm 1. 建立项目 Node及express的安装这里就不再赘述,网上有很多安装的教程,不会的同学可以自行查找,这里我们采用express4.x版本 安装express库完成之后,我们可以使用express命令来建立一个自己的项目: expre

Node.js(express) + MongoDB(mongoose) 简单开发(二)

前面说过,做一个真正意义上的登录注册,接下来就让我们一步一步实现吧~ 首先需要安装mongodb,网上有很多安装教程,这里就不再赘述. 安装完成后开始与本地数据库连接,可以参考这里:MongoDB介绍及下载与安装 最后可以安装一个可视化的操作数据库的软件:MongoVUE,配置也很简单: 最后在项目级目录下安装mongoose,安装过程自行百度~ 安装成功后可在node_modules下看见mongoose文件夹 接下来我们测试数据库是否连同: 新建一个models的文件夹,在这里我们对表进行操

【我的笔记BLOG1】配置webstorm + node.js +express + mongodb开发博客的环境

1. 安装webstorm 并破解 2. 安装node (以及express框架) 至官网下载并安装.(http://nodejs.org)v0.10.32   msi 安装后测试,打开命令行, c:\users\Iris804>  node >console.log("hello") 输出 hello undefined 安装node.js 包管理器(Express) ctrl+d, 回到初始窗口,输入  npm install -g express-gengerator

ubuntu 安装node.js + express + mongodb

转载自http://my.oschina.net/reg/blog/289536 Ctrl + Alt + T,打开终端,输入以下命令安装: sudo apt-get install nodejs 安装完成后,终端输入nodejs,就能进入node命令啦: 但是正常下应该是输入node进入命令而不是nodejs: 在Ubuntu下node是属于其他应用的,不过继续输入下面的命令安装,完成后就可以使用node进入命令啦. sudo apt-get install nodejs-legacynode

Node.js + Express + Mongodb 开发搭建个人网站(一)

一.Node + Express环境搭建 0.去Node官网下载安装node,如果安装了 npm 和 node的话 那么就 安装 全局的 express,-g全局安装 npm install express –g 1.然后使用 express 创建项目,命令:   express 项目名 初始化一个node项目 注意 这里 默认的页面模版 是jade 大部分小项目使用的是 ejs模版,所以 利用express创建ejs模版的node项目,命令为express -e 项目名 express -e

Node.js + Express + Mongodb 开发搭建个人网站(二)

二.路由 1.打开 routes/index.js ,这个意思就是  捕获到访问主页的get请求: 并通过 app.js 分配到对应的路由里: 看到这里,打开 http://127.0.0.1:3000/users/  来感受一个路由的意思: routes/index.js 文件: 如果我们请求是get,路径是 '/' 那么就是渲染index.ejs这个视图,可以省略后缀名 .ejs: 这个的意思是将数据传到index.ejs中 并输出到页面上. 2.视图 views/index.ejs 可以看