欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Node.js完整實現(xiàn)博客系統(tǒng)詳解

 更新時間:2022年08月16日 14:07:45   作者:litchi?dream  
這篇文章主要介紹了Node.js完整實現(xiàn)一個博客系統(tǒng)的流程,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

一、項目功能說明

  • 登錄、注冊
  • 新建博客
  • 首頁顯示全部博客
  • 查看博客詳情頁
  • 查看博客評論區(qū)
  • 修改、刪除博客

二、最終效果

首頁:

登錄、注冊:

詳情頁:

評論區(qū):

新建博客:

登陸后的Banner:

用戶設(shè)置->基本信息:

用戶設(shè)置->賬戶設(shè)置:

三、文件目錄結(jié)構(gòu)說明

  • modules:包含需要建多個的Schema
  • public:包含公共的Css、Js、Image
  • views:按照不同功能、板塊創(chuàng)建文件夾,并在對應(yīng)文件夾下創(chuàng)建html文件
  • app.js:配置解析表單POST請求體數(shù)據(jù)、存取數(shù)據(jù)狀態(tài)、使用模板引擎、掛載路由
  • router.js:路由配置

四、項目技術(shù)棧

  • express 框架
  • bootstrap 作為UI框架
  • mongodb 數(shù)據(jù)庫
  • art-template 模板引擎
  • jquery + ajax 發(fā)送網(wǎng)絡(luò)請求
  • 使用 express-session 存取數(shù)據(jù)狀態(tài),通過req.session來訪問和設(shè)置session成員
  • mongoose 使用了一種直接的、基于scheme結(jié)構(gòu)的方式定義數(shù)據(jù)模型

五、核心技術(shù)

1. 使用Schema定義數(shù)據(jù)模型

例如:定義評論的 Schema模型

var commentSchema = new Schema({
    articleId:{
        type:String,
        required:true
    },
    nickname:{
        type:String,
        required:true
    },
    comments:{
        type:String,
        required:true
    },
    created_time:{
        type:Date,
        default:Date.now      
    }
})

2. mongoose 的操作

連接mongodb數(shù)據(jù)庫:mongoose.connect('mongodb://localhost/user',{ useNewUrlParser: true ,useUnifiedTopology: true})

導(dǎo)出 Schema模型:module.exports = mongoose.model('Comment',commentSchema)

3. mogodb數(shù)據(jù)庫的操作

查找:Topic.find(function(err,topics){ ... })

查找一個:User.findOne({ },function(err,data){})

保存信息:Topic(req.body).save(function(err,data){})

查找一個并更新:User.findOneAndUpdate({查找條件},{要修改的信息},function(err,data){})

刪除:User.remove({查找條件},function(err,data){})

4. 使用第三方插件 express-session:存取數(shù)據(jù)狀態(tài)

session 的配置

// 使用第三方插件 express-session:存取數(shù)據(jù)狀態(tài)
// 1.npm install express-session
// 2.配置,一定要在路由之前
// 3.使用
//  當(dāng)把這個插件配置好之后,我們就可以通過req.session來訪問和設(shè)置session成員了
//  添加session數(shù)據(jù):req.session.foo = 'bar
//  訪問session數(shù)據(jù):req.session.foo
var session = require('express-session')
app.use(session({
    // 配置加密字符串,他會在原有加密基礎(chǔ)上和這個字符串拼起來去加密
    // 目的是為了增加安全性,防止客戶端惡意偽造
    secret: 'itcast',   
    resave: false,
    saveUninitialized: false
}))

通過session 讀取狀態(tài):

// 用戶存在,登錄成功,記錄登錄狀態(tài)
        req.session.user = user
        res.status(200).json({
            err_code:0,
            message:'OK'
        })

清除 session:

	// 清楚登錄狀態(tài)
    // 重定向到登錄頁,<a>鏈接是同步請求,所以可以服務(wù)端重定向
    req.session.user = null
    res.redirect('/')

5. 掛載路由

創(chuàng)建路由:var router = express.Router(),并在路由上通過router.get()、router.post()方法添加請求,最后導(dǎo)出 router

6. 使用md5對密碼進行加密

通過md5對密碼加密,這樣數(shù)據(jù)庫也無法讀取到正確的密碼

六、遇到的問題

  • 沒有很好的對時間進行格式化
  • 未實現(xiàn)搜索文章功能

七、github鏈接

Node.js 博客項目

到此這篇關(guān)于Node.js完整實現(xiàn)博客系統(tǒng)詳解的文章就介紹到這了,更多相關(guān)Node.js博客系統(tǒng)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • node.js中實現(xiàn)同步操作的3種實現(xiàn)方法

    node.js中實現(xiàn)同步操作的3種實現(xiàn)方法

    這篇文章主要介紹了node.js中實現(xiàn)同步操作的3種實現(xiàn)方法,本文用實例講解一些需要同步操作的情況下,如何編程實現(xiàn),需要的朋友可以參考下
    2014-12-12
  • Node.js 中判斷一個文件是否存在

    Node.js 中判斷一個文件是否存在

    這篇文章主要記錄一些 Node.js 應(yīng)用中的小知識點,如果你 Google/Baidu “Node.js 如何判斷文件是否存在” 發(fā)現(xiàn)給出的很多答案還是使用的 fs.exists,這里不推薦使用 fs.exists 你可以選擇 fs.stat 或 fs.access。
    2020-08-08
  • node.js中的fs.readlinkSync方法使用說明

    node.js中的fs.readlinkSync方法使用說明

    這篇文章主要介紹了node.js中的fs.readlinkSync方法使用說明,本文介紹了fs.readlinkSync方法說明、語法、接收參數(shù)、使用實例和實現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • Node.js的項目構(gòu)建工具Grunt的安裝與配置教程

    Node.js的項目構(gòu)建工具Grunt的安裝與配置教程

    Grunt是為Node打造的項目構(gòu)建工具,相當(dāng)于C/C++世界中的makefile,可以執(zhí)行像壓縮、編譯、單元測試、代碼檢查以及打包發(fā)布的任務(wù),下面我們就來一起看一下Node.js的項目構(gòu)建工具Grunt的安裝與配置教程:
    2016-05-05
  • Nodejs實現(xiàn)多人同時在線移動鼠標的小游戲分享

    Nodejs實現(xiàn)多人同時在線移動鼠標的小游戲分享

    這篇文章主要介紹了Nodejs實現(xiàn)多人同時在線移動鼠標的小游戲分享,本文給出了服務(wù)器端和客戶端代碼以及運行方法,需要的朋友可以參考下
    2014-12-12
  • node.js express中app.param的用法詳解

    node.js express中app.param的用法詳解

    express.js是nodejs的一個MVC開發(fā)框架,并且支持jade等多種模板。下面這篇文章主要給大家介紹了關(guān)于node.js express中app.param用法的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-07-07
  • node.js中的path.isAbsolute方法使用說明

    node.js中的path.isAbsolute方法使用說明

    這篇文章主要介紹了node.js中的path.isAbsolute方法使用說明,本文介紹了path.isAbsolute的方法說明、語法、使用實例和實現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • node.js部署之啟動后臺運行forever的方法

    node.js部署之啟動后臺運行forever的方法

    今天小編就為大家分享一篇node.js部署之啟動后臺運行forever的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • 10個最優(yōu)秀的Node.js MVC框架

    10個最優(yōu)秀的Node.js MVC框架

    這篇文章主要為大家詳細介紹了10個最優(yōu)秀的Node.js MVC框架,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • nodejs使用express獲取get和post傳值及session驗證的方法

    nodejs使用express獲取get和post傳值及session驗證的方法

    這篇文章主要介紹了nodejs使用express獲取get和post傳值及session驗證的方法,結(jié)合實例形式分析了nodejs使用express實現(xiàn)獲取get和post傳值及session驗證功能的具體操作步驟與注意事項,需要的朋友可以參考下
    2017-11-11

最新評論