经过 Node.js + Express + MongoDB 实现网页注册帐号 和 登入帐号的功能javascript
项目准备: css
1: 事先准备好项目的页面 (首页页面 index.html)(登入页面 login.html) (注册页面 register.html) html
2: 安装好 Node.js 须要使用的第三方模板前端
3: 设计路径设计java
4: 理清功能需求
node
5: 建立 app.js router.js mgdb.js 三个 js 文件 和 public 和 views 文件夹mongodb
做用:数据库
app.js 文件用于开启服务器express
router.js 文件用于请求路径设计json
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