經過 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