最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

一、項(xiàng)目功能說明

  • 登錄、注冊
  • 新建博客
  • 首頁顯示全部博客
  • 查看博客詳情頁
  • 查看博客評論區(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:路由配置

四、項(xiàng)目技術(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對密碼進(jìn)行加密

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

六、遇到的問題

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

七、github鏈接

Node.js 博客項(xiàng)目

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

相關(guān)文章

  • nodejs關(guān)于中間件解析

    nodejs關(guān)于中間件解析

    這篇文章主要介紹了nodejs關(guān)于中間件解析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Nodejs使用fs-extra模塊進(jìn)行目錄和文件操作用法示例

    Nodejs使用fs-extra模塊進(jìn)行目錄和文件操作用法示例

    fs-extra模塊是基于fs?的文件操作相關(guān)工具庫,封裝了一些fs實(shí)現(xiàn)起來相對復(fù)雜的工具,下面這篇文章主要給大家介紹了關(guān)于Nodejs使用fs-extra模塊進(jìn)行目錄和文件操作用法的相關(guān)資料,需要的朋友可以參考下
    2024-06-06
  • 詳解NODEJS的http實(shí)現(xiàn)

    詳解NODEJS的http實(shí)現(xiàn)

    這篇文章主要介紹了詳解NODEJS的http實(shí)現(xiàn)的技術(shù)過程以及詳細(xì)分析,需要的朋友學(xué)習(xí)參考下吧。
    2018-01-01
  • Node.js 阻塞與非阻塞的實(shí)現(xiàn)

    Node.js 阻塞與非阻塞的實(shí)現(xiàn)

    本文主要介紹了Node.js中阻塞和非阻塞調(diào)用之間的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • 基于Node-red的在線評語系統(tǒng)(可視化編程,公網(wǎng)訪問)

    基于Node-red的在線評語系統(tǒng)(可視化編程,公網(wǎng)訪問)

    Node-Red是IBM公司開發(fā)的一個可視化的編程工具,在網(wǎng)頁內(nèi)編程,主要是拖拽控件,代碼量很小,這篇文章主要介紹了基于Node-red的在線評語系統(tǒng)(可視化編程,公網(wǎng)訪問),需要的朋友可以參考下
    2022-01-01
  • 如何解決安裝websocket還是報(bào)錯Cannot find module'ws'問題

    如何解決安裝websocket還是報(bào)錯Cannot find module'ws&apos

    這篇文章主要介紹了如何解決安裝websocket還是報(bào)Cannot find module'ws'問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • Node.js文件操作詳解

    Node.js文件操作詳解

    這篇文章主要介紹了Node.js文件操作詳解,本文講解了處理文件路徑講的一些方法、fs模塊詳細(xì)的使用和介紹等內(nèi)容,需要的朋友可以參考下
    2014-08-08
  • node實(shí)現(xiàn)簡單的反向代理服務(wù)器

    node實(shí)現(xiàn)簡單的反向代理服務(wù)器

    本篇文章主要介紹了node實(shí)現(xiàn)簡單的反向代理,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • NodeJS中的MongoDB快速入門詳細(xì)教程

    NodeJS中的MongoDB快速入門詳細(xì)教程

    MongoDB 是一個基于分布式文件存儲的數(shù)據(jù)庫,由 C++ 語言編寫。這篇文章主要介紹了NodeJS中的MongoDB快速入門詳細(xì)教程的相關(guān)資料,需要的朋友可以參考下
    2016-11-11
  • Node.js的進(jìn)程管理的深入理解

    Node.js的進(jìn)程管理的深入理解

    這篇文章主要介紹了Node.js的進(jìn)程管理的深入理解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01

最新評論

景东| 南平市| 安丘市| 改则县| 砀山县| 桃江县| 建水县| 察隅县| 天峨县| 东兰县| 台山市| 蛟河市| 彰化市| 泾川县| 浮山县| 高陵县| 家居| 汤阴县| 林州市| 宜兴市| 广汉市| 卢湾区| 阳春市| 连江县| 上林县| 筠连县| 英吉沙县| 芒康县| 陵水| 佛坪县| 缙云县| 三门县| 枞阳县| 开原市| 松桃| 宕昌县| 台东县| 克拉玛依市| 通渭县| 铜梁县| 马公市|