{%hackmd BJrTq20hE %}
第 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,希望能夠在比賽結束前把後端和前端接起來。