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
Node.js+Express+MongoDB数据库实现网页注册登入功能的更多相关文章
- Node.js Express+Mongodb 项目实战
Node.js Express+Mongodb 项目实战 这是一个简单的商品管理系统的小项目,包含的功能还算挺全的,项目涵盖了登录.注册,图片上传以及对商品进行增.删.查.改等操作,对于新手来说是个很 ...
- node.js+express+mongodb
主要是想用node.js链接mongodb,用的是mongoose.用ejs引擎,扩展到.html比较容易 小例子结构简单,框架清晰. 提交方法 路径 方法 作用 get add post a ...
- 【nodejs笔记1】配置webstorm + node.js +express + mongodb开发博客的环境
1. 安装webstorm 并破解 2. 安装node (以及express框架) 至官网下载并安装.(http://nodejs.org)v0.10.32 msi 安装后测试,打开命令行, c ...
- Node.js +Express+MongoDB+mogoose+ejs+bootstrap+jquery
Node.js + MongoDB 项目实战(二) 创建项目 在项目实战(一)中,已经配置好了开发环境(详见:http://www.cnblogs.com/jameslong/articles/34 ...
- node.js连接MongoDB数据库,db.collection is not a function完美解决
解决方法一. mongodb数据库版本回退: 这个错误是出在mongodb的库中,在nodejs里的写法和命令行中的写法不一样,3.0的api已经更新和以前的版本不不一样,我们在npm中没指定版本号的 ...
- ubuntu安装node.js+express+mongodb
输入以下命令安装: sudo apt-get install nodejs 安装完成后,终端输入nodejs,就能进入node命令啦: 但是正常下应该是输入node进入命令而不是nodejs: 在Ub ...
- ubuntu 安装node.js + express + mongodb
转载自http://my.oschina.net/reg/blog/289536 Ctrl + Alt + T,打开终端,输入以下命令安装: sudo apt-get install nodejs 安 ...
- Node.js + Express + Mongodb 开发搭建个人网站(一)
一.Node + Express环境搭建 0.去Node官网下载安装node,如果安装了 npm 和 node的话 那么就 安装 全局的 express,-g全局安装 npm install expr ...
- Node.js连接MongoDB数据库
首先要启动MongoDB服务器 先找到你的mongoDb安装目录,我的如下:就在bin文件夹下创建一个data文件夹,data内包含两个空文件夹,如下: 接着回到bin文件夹处,按住shift键,右击 ...
随机推荐
- Ajax与Http协议
目录 Ajax与Http协议详解 Xhr对象 xhr对象发送请求整体感知 xhr对象的常用属性和方法 xhr对象发送post请求 xhr对象的兼容性问题 请求超时timeout与监听超时ontimeo ...
- 2019牛客暑期多校训练营(第二场)J.Subarray
题意:给你一个n 表示有n段连续的1序列 现在问你 在总长度为0~1e9-1的范围内有多少个大于0的子段 思路:假设我们统计了当前的前缀和 我们显然可以用树状数组维护一下前缀和 这样我们可以nlogn ...
- 69道Spring面试题及答案
目录 Spring 概述 依赖注入 Spring beans Spring注解 Spring数据访问 Spring面向切面编程(AOP) Spring MVC Spring 概述 1. 什么是spri ...
- .NET Core开发的iNeuOS工业互联网平台,发布 iNeuDA 数据分析展示组件,快捷开发图形报表和数据大屏
目 录 1. 概述... 2 2. 演示信息... 2 3. 简单介绍... 3 4. 产品特点... 4 5. 价值体现... 5 1. ...
- 程序员的算法课(19)-常用的图算法:最短路径(Shortest Path)
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/m0_37609579/article/de ...
- JS使用readAsDataURL读取图像文件
JS使用readAsDataURL读取图像文件 FileReader对象的readAsDataURL方法可以将读取到的文件编码成Data URL.Data URL是一项特殊的技术,可以将资料(例如图片 ...
- 洛谷P2085——最小函数值
题目描述 有n个函数,分别为\(F_1,F_2,...,F_n\).定义\(F_i(x)=A_i*x^2+B_i*x+C_i (x∈N*)\).给定这些\(A_i.B_i和C_i\),请求出所有函数的 ...
- 第三章 学习Shader所需的数学基础(3)
@[TOC] 1. 顶点的坐标空间变换过程 我们知道,在渲染流水线中,一个顶点要经过多个坐标空间的变换才能最终被画在屏幕上.一个顶点最开始是在模型空间中定义的,它最后会被变换到屏幕空间中,得到真正的屏 ...
- 转:URL,URLConnection,HttPURLConnection的使用
URLConnection与HttPURLConnection都是抽象类,无法直接实例化对象.其对象主要通过URL的openconnection方法获得. 值得注意的是:1.openConnectio ...
- luogu P1850 换教室
题目描述 对于刚上大学的牛牛来说,他面临的第一个问题是如何根据实际情况申请合适的课程. 在可以选择的课程中,有 2n 节课程安排在 n 个时间段上.在第 i (1 ≤ i ≤ n)个时间段上,两节内容 ...