從無到有,用Nodejs+express+mongodb搭建簡易登陸系統

來源:互聯網
上載者:User

標籤:

前端處理server表示很蛋疼,初學Node,雖然感覺異常強大,但是學起來還是有些吃力的,Node是工具,它不是萬能的,搭建一個系統還是需要藉助其他一些工具,對於我這個沒怎麼接觸server的前端來說,挑戰是有的。昨天參考一些資料嘗試用Node+express+mongodb搭建一個簡易的登陸系統,在此記之。

express是一個靈活的nodejs web應用程式框架, 提供一系列強大特性協助你建立各種Web應用。

Mongodb是資料庫。

1、安裝express,express安裝比較簡單,直接用npm install -g express-generator,一定要用這個,如果用npm install -g express就會出現express not found的問題。

2、安裝mongodb, 在官網下下在程式,然後一步步安裝,我是在D盤建立一個Mongodb的檔案夾,安裝在該檔案夾內。

3、將安裝檔案目錄下bin下面的檔案複製到Mongodb根目錄。

4、啟動mongodb,cmd中命令如下:

如果看到下面的內容,恭喜啟動成功。最好建一個cmd檔案,每次啟動運行該檔案即可。

mongodb.cmd檔案:

:: 定位到D盤d: :: 切換到mongodb的資料庫目錄cd Mongodb :: 刪除資料庫鎖定記錄檔案if exist mongod.lock del mongod.lock missing :: 配置mongodb的文檔儲存目錄mongod --dbpath "D:\Mongodb\data"

5、在Mongodb目錄下運行mongo,預設連結到test

到這裡整個環境配置完畢並且已經啟動。

下面看具體的Node。

安裝完express後在某個目錄下運行express Login -e就會自動建立一個項目,然後npm install會下載依賴包。

1、建立一個models檔案夾,在該檔案夾下建立user.js:

var mongoose = require("mongoose");  //  頂會議使用者組件var Schema = mongoose.Schema;    //  建立模型var userScheMa = new Schema({    userid: String,    password: String}); //  定義了一個新的模型,但是此模式還未和users集合有關聯exports.user = mongoose.model(‘users‘, userScheMa); //  與users集合關聯

2、在views下面建index.ejs, errors.ejs, login.ejs, logout.ejs, homepage.ejs。 (index是內建的,不用建)

index.ejs:

<!DOCTYPE html><html>  <head>    <title><%= title %></title>    <link rel=‘stylesheet‘ href=‘/stylesheets/style.css‘ />  </head>  <body>    <h1>Hello World</h1>    <p>Welcome to <%= title %></p>    <p><a href="login">登陸</a></p>  </body></html>

login.ejs:

<!DOCTYPE html><html>  <head>    <title><%= title %></title>    <link rel=‘stylesheet‘ href=‘/stylesheets/style.css‘ />  </head>  <body>    <h1>Hello World</h1>    <p>Welcome to <%= title %></p>    <form action="homepage" method="post">        <p>            <span>userId:</span>            <br>            <input id="userid" name="userid" type="text">        </p>        <p>            <span>password:</span>            <br>            <input id="password" name="password" type="password">        </p>        <p><input type="submit" value="submit"></p>    </form>  </body></html>

loginout.ejs:

<!DOCTYPE html><html>  <head>    <title><%= title %></title>    <link rel=‘stylesheet‘ href=‘/stylesheets/style.css‘ />  </head>  <body>    <h1>Hello World</h1>    <p>Welcome to <%= title %></p>    <p>正在登出...</p>    <script type="text/javascript">        setTimeout(function(){            window.location.href = "/";        }, 500);    </script>  </body></html>

homepage.ejs:

<!DOCTYPE html><html>  <head>    <title><%= title %></title>    <link rel=‘stylesheet‘ href=‘/stylesheets/style.css‘ />  </head>  <body>    <h1>Hello World</h1>    <p>Welcome to <%= title %></p>    <p><a href="logout">登出</a></p>  </body></html>

3、在routes目下的index.js配置路由:

var express = require(‘express‘);var router = express.Router();var mongoose = require(‘mongoose‘);var user = require(‘../models/user‘).user;mongoose.connect(‘mongodb://localhost/admin‘); /* GET home page. */router.get(‘/‘, function(req, res) {      res.render(‘index‘, { title: ‘index‘ });}); /*login*/router.get(‘/login‘, function(req, res) {    res.render(‘login‘, { title: ‘login‘ });}); /*logout*/router.get(‘/logout‘, function(req, res) {      res.render(‘logout‘, { title: ‘logout‘ });}); /*hompage*/router.post(‘/homepage‘, function(req, res) {    var query_doc = {userid: req.body.userid, password: req.body.password};    (function(){        user.count(query_doc, function(err, doc){            if(doc == 1){                console.log(query_doc.userid + ": login success in " + new Date());                res.render(‘homepage‘, { title: ‘homepage‘ });            }else{                console.log(query_doc.userid + ": login failed in " + new Date());                res.redirect(‘/‘);            }        });    })(query_doc);}); module.exports = router;

大功告成。

確保啟動mongodb後在Login項目下運行npm start。然後在瀏覽器輸入https://localhost:3000就能看到介面了:

 漏了一點,需要在mongodb建立使用者名稱和密碼,不然沒法登陸進去。步驟如下:

從無到有,用Nodejs+express+mongodb搭建簡易登陸系統

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.