摘要:學習新技術最快捷的方式就是做項目。利用了來避免回調地獄,使得代碼能夠更好的被讀懂和維護。
學習新技術最快捷的方式就是做項目。這兩天我寫了個基于express和MongoDB的Web登錄功能
先看看效果 技術選擇Node.js
MongoDB
express
mongoose
Bootstrap
其中MongoDB的簡單使用可以看我上一篇博文
項目目錄. ├── database │?? ├── entity.js //實體Entity │?? ├── model.js //模型Model │?? └── schema.js //骨架Schema ├── package.json ├── public │?? ├── home.html //主頁 │?? ├── login.html //登陸頁 │?? ├── register.html //注冊頁 │?? └── source │?? ├── login.css │?? ├── login.less │?? └── reset.css ├── routes │?? ├── home.js //主頁路由 │?? ├── login.js //登錄路由 │?? ├── login_process.js //登錄POST處理 │?? ├── register.js //注冊路由 │?? └── register_process.js //注冊POST處理 └── server └── index.js //入口文件實現思路
進入登陸頁面
點擊登錄按鈕并利用POST方法提交
提交的數據傳給后臺與數據庫取出的數據進行匹配按情況分配路由
路由index.js
app.use("/", loginRouter); app.use("/login_process", loginProcessRouter); app.use("/home", homeRouter); app.use("/register", registerRouter); app.use("/register_process", registerProcessRouter);
在入口文件中分配路由
login.js
var express = require("express"); var app = express(); var path = require("path"); var router = express.Router(); router.get("/", function (req, res) { res.sendFile(path.join(__dirname, "../public", "login.html")); }); module.exports = router;
簡單說明一下,當瀏覽器的地址欄變為localhost:3000/的時候,渲染login.html
login_process.js
var express = require("express"); var path = require("path"); var bodyParser = require("body-parser"); var app = express(); var router = express.Router(); var UserModel = require("../database/model"); var UserEntity = require("../database/entity"); var urlencodedParser = bodyParser.urlencoded({ extended: false }); router.post("/", urlencodedParser, function (req, res) { response = { username: req.body.username, password: req.body.password }; var input_username = response.username; var input_password = response.password; function getUser() { var user; user = UserModel.findOne({ USERNAME: input_username }) .exec() .then(function (result) { return result; }) .error(function (error) { return "Promise Error:" + error; }) return user; } getUser() .then(function(result){ if(result === null) { res.redirect("/"); } else if (input_username === result.USERNAME || input_password === result.PASSWORD) { console.log("true"); res.redirect("/home"); } else { console.log("false"); res.redirect("/"); } }) .error(function(error){ return "Promise Error:" + error; }) }); module.exports = router;
在login_process.js文件內,我們接收到了前端頁面POST過來的數據,并利用mongoose的Model來查詢數據庫與之比較。利用了Promise來避免回調地獄,使得代碼能夠更好的被讀懂和維護。
注:Model模型,是經過Schema構造來的,除了Schema定義的數據庫骨架以外,還具有數據庫行為模型,他相當于管理數據庫屬性、行為的類
不足這畢竟只是個小demo,有很多不完善的地方,就在這里列出來,以便日后補上
前端輸入提示不友好
沒有利用session和cookie進行登錄攔截
就寫到這里,祝大家have a nice day ;)
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/50574.html
摘要:學習新技術最快捷的方式就是做項目。利用了來避免回調地獄,使得代碼能夠更好的被讀懂和維護。 學習新技術最快捷的方式就是做項目。這兩天我寫了個基于express和MongoDB的Web登錄功能 先看看效果 showImg(https://segmentfault.com/img/bVKL5W?w=320&h=403); 技術選擇 Node.js MongoDB express mongo...
摘要:學習新技術最快捷的方式就是做項目。利用了來避免回調地獄,使得代碼能夠更好的被讀懂和維護。 學習新技術最快捷的方式就是做項目。這兩天我寫了個基于express和MongoDB的Web登錄功能 先看看效果 showImg(https://segmentfault.com/img/bVKL5W?w=320&h=403); 技術選擇 Node.js MongoDB express mongo...
摘要:利用中間件實現異步請求,實現兩個用戶角色實時通信。目前還未深入了解的一些概念。往后會寫更多的前后臺聯通的項目。刪除分組會連同組內的所有圖片一起刪除。算是對自己上次用寫后臺的一個強化,項目文章在這里。后來一直沒動,前些日子才把后續的完善。 歡迎訪問我的個人網站:http://www.neroht.com/? 剛學vue和react時,利用業余時間寫的關于這兩個框架的訓練,都相對簡單,有的...
閱讀 482·2019-08-30 15:44
閱讀 897·2019-08-30 10:55
閱讀 2729·2019-08-29 15:16
閱讀 924·2019-08-29 13:17
閱讀 2801·2019-08-26 13:27
閱讀 568·2019-08-26 11:53
閱讀 2119·2019-08-23 18:31
閱讀 1882·2019-08-23 18:23