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

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

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

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

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

二、最終效果

首頁(yè):

登錄、注冊(cè):

詳情頁(yè):

評(píng)論區(qū):

新建博客:

登陸后的Banner:

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

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

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

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

四、項(xiàng)目技術(shù)棧

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

五、核心技術(shù)

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

例如:定義評(píng)論的 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ù)庫(kù):mongoose.connect('mongodb://localhost/user',{ useNewUrlParser: true ,useUnifiedTopology: true})

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

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

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

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

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

查找一個(gè)并更新: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)把這個(gè)插件配置好之后,我們就可以通過(guò)req.session來(lái)訪問(wèn)和設(shè)置session成員了
//  添加session數(shù)據(jù):req.session.foo = 'bar
//  訪問(wèn)session數(shù)據(jù):req.session.foo
var session = require('express-session')
app.use(session({
    // 配置加密字符串,他會(huì)在原有加密基礎(chǔ)上和這個(gè)字符串拼起來(lái)去加密
    // 目的是為了增加安全性,防止客戶(hù)端惡意偽造
    secret: 'itcast',   
    resave: false,
    saveUninitialized: false
}))

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

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

清除 session:

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

5. 掛載路由

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

6. 使用md5對(duì)密碼進(jìn)行加密

通過(guò)md5對(duì)密碼加密,這樣數(shù)據(jù)庫(kù)也無(wú)法讀取到正確的密碼

六、遇到的問(wèn)題

  • 沒(méi)有很好的對(duì)時(shí)間進(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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

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

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

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

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

    fs-extra模塊是基于fs?的文件操作相關(guān)工具庫(kù),封裝了一些fs實(shí)現(xiàn)起來(lái)相對(duì)復(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ù)過(guò)程以及詳細(xì)分析,需要的朋友學(xué)習(xí)參考下吧。
    2018-01-01
  • Node.js 阻塞與非阻塞的實(shí)現(xiàn)

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

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

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

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

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

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

    Node.js文件操作詳解

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

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

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

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

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

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

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

最新評(píng)論

原阳县| 滁州市| 昭苏县| 阿瓦提县| 正定县| 无锡市| 安平县| 甘南县| 鄂尔多斯市| 南宫市| 临夏县| 贞丰县| 景宁| 尉氏县| 河间市| 化隆| 健康| 南投县| 望奎县| 玛沁县| 嵊州市| 萍乡市| 承德市| 栖霞市| 罗平县| 杂多县| 思茅市| 遂宁市| 文昌市| 云南省| 东港市| 新泰市| 福州市| 奉节县| 屏东市| 凤翔县| 岑溪市| 沧州市| 周宁县| 成武县| 石河子市|