iT邦幫忙

2022 iThome 鐵人賽

DAY 27
0
Modern Web

Node.js系列 第 27

DAY 27 用 Koa+MongoDB實現一個部落格

  • 分享至 

  • xImage
  •  

DAY 27 用 Koa+MongoDB實現一個部落格

{%hackmd BJrTq20hE %}

tags: 第 14 屆 iThome 鐵人賽 (2022)

接下來的幾天要來介紹如何使用Node.js實現完整的部落格網站,包含所需的資料庫組織結構、部羅格後台管理系統、部落格的前台,範例的服務端應用Koa實現

資料準備

首先使用指令Use test切換MongoDB資料庫,建立user集合:

> mongo
> use test 切換資料庫
switched to db test
> db.createCollection("users") 建立集合users
> show collections 顯示集合
users

建立管理員賬戶admin:

> db.users.insert({
...       "name" : "test",
...       "pwd" : "e10adc3949ba59abbe56e057f20f883e",
...       "username" : "admin",
...       "roles" : [
...           "admin"
...       ]
...   })
WriteResult({ "nInserted" : 1 })
> db.users.find().pretty()

插入成功之後透過db.users.find().pretty()查詢文件。

連接資料庫

import mongoose from 'mongoose'
const DB_URL = 'mongodb://localhost"27017/test'

mongoose.Promise = global.Promise
mongoose.connect(DB_URL, { useMongoClient: true }, err => {
    if (err) {
        console.log("資料庫連線失敗!")
    }else{
        console.log("資料庫連線成功!")
    }
})
export default mongoose

建立資料庫

(1)建立blog表結構:

import db from '../mongodb'
let blogSchema = db.Schema({
  type: Array,
  title: String,
  desc: String,
  html: String,
  markdown: String,
  level: Number,
  github: String,
  source: Number,
  isVisible: Boolean,
  releaseTime: Date,
  createTime: {
    type: Date,
    default: Date.now
  }
})
export default db.model('blog', blogSchema

(1)建立user表結構:

import db from '../mongodb'
let userSchema = db.Schema({
  username: String,
  pwd: String,
  name: String,
  avatar: String,
  roles: Array,
  createTime: {
    type: Date,
    default: Date.now
  },
  loginTime: Date
})
export default db.model('user', userSchema);

結論

今天先把資料庫建好,明天會進入後台應用,需要再app.js中引用Koa,希望能夠在比賽結束前把後端和前端接起來。


上一篇
DAY 26 Redis什麼都會又大又便宜?
下一篇
DAY 28用Koa+MongoDB實現一個部落格 ll
系列文
Node.js30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言