基于nodejs于mongodb,ejs实现的博客上

基于nodejs于mongodb,ejs实现的博客上,前台项目准备项目思路实现功能封装mongodb的增删改查实现下首页接口文章详情接口发布评论接口总结项目准备本次博客是基于express框架来实现的,主要功能包括查看文章,评论以及后台管理的发布博客,评论审核等功能。首先必须得有node,可以自行去官网下载,无脑下一步即可,而且要有mongodb的数据库才行,推荐下载社区版,菜鸟教程就有教怎么安装,然后安装相应的脚手架,可以自行安装,也可以手动安装这里我才用的是直接干撸几个相关的配置,直接npm 即可
摘要由CSDN通过智能技术生成

项目准备

本次博客是基于express框架来实现的,主要功能包括查看文章,评论以及后台管理的发布博客,评论审核等功能。首先必须得有node,可以自行去官网下载,无脑下一步即可,而且要有mongodb的数据库才行,推荐下载社区版,菜鸟教程就有教怎么安装,然后安装相应的脚手架,可以自行安装,也可以手动安装
这里我才用的是直接干撸几个相关的配置,直接npm 即可在这里插入图片描述

项目思路

这里我们要思考下怎么布局,以及数据为什么。
首先博客得有文章,而且得有相应的评论,这里我们初始化俩个数据库集合。这里如果有不了解mongodb数据库的建议先学习下数据库操作
在这里插入图片描述
其次是我们要有俩个大功能,一个是查看文章以及评论文章,一个是后台管理
查看文章又得分为查看多个列表,以及文章详情部分,后台管理又分为登录以及管理模块,所以我们大致分为4个页面来实现此博客系统。

实现功能

接下来就是我们的代码实现了,这里我才用的是ejs渲染模板,和vue的v-for有些类似比较容易操作渲染页面。直接采用bootstrap来弄现成的结构,毕竟🐀🐀是cv工程师,然后就是初始化我们的express了,这里我都写上了注释,由于我们采用的是ejs来渲染页面,这里把index改为false不直接访问我们的index.html

// 引入express模块
const express = require('express')
// 初始化express模块的app
const app = express()

// 引入body-parser模块
const bodyParser = require('body-parser')
// 初始化urlencoded解析器
const urlencodedParser = bodyParser.urlencoded({
   
    extended: false
})

// 引入cookie-parser模块
const cookieParser = require('cookie-parser')
// 为请求添加中间件:解析cookie
app.use(cookieParser())

// 处理静态文件请求
app.use(express.static('./static', {
   
    index: false
}))

封装mongodb的增删改查

要是每次调用数据库都得重写那可太浪费了,所以我们封装一下
直接上代码让大家引入,这个是我当时以菜鸟教程的方法封装的,npm i mongodb,然后再导出他。

// es6封装
const mongodb = require('mongodb')
const MongoClient = mongodb.MongoClient
const ObjectId = mongodb.ObjectId
var url = "mongodb://localhost:27017"
class mongoControl{
   
    constructor(dbName,collectionName){
   
        this.dbName=dbName
        this.collectionName=collectionName
    }
    find(whereStr,callback){
   
        MongoClient.connect(url,(error,db)=>{
   
            if(error){
   
                callback(error)
                return
            }
            var dbo=db.db(this.dbName)
            dbo.collection(this.collectionName).find(whereStr).toArray((err,result)=>{
   
                callback(err,result)
                db.close()
            })
        })
    }
    insert(docs,callback){
   
        MongoClient.connect(url,(error,db)=>{
   
            if(error) throw error
            var dbo=db.db(this.dbName)
            dbo.collection(this.collectionName).insertMany(docs,(error,result)=>{
   
                callback(error,result)
                db.close()
            })
        })
    }
    update(whereStr,newData,callback){
   
        MongoClient.connect(url,(error,db)=>{
   
            if(error) throw error
            var dbo=db.
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值