摘要:用寫一個上一節(jié)前后端項(xiàng)目分別初始化完成,這一小節(jié)我就從后端項(xiàng)目開始寫。每一個都映射到一個的集合,并定義了該集合中的文檔的形式。
【Part1】用JS寫一個Blog (node + vue + mongoDB)
上一節(jié)前后端項(xiàng)目分別初始化完成,這一小節(jié)我就從后端項(xiàng)目開始寫。實(shí)現(xiàn)mongoDB數(shù)據(jù)庫的連接。
整理后端目錄下面是通過express-generate生成的項(xiàng)目的目錄
bin/www是項(xiàng)目的啟動文件,啟動項(xiàng)目除了上次說的npm start,還可以再命令后執(zhí)行 node bin/www,其實(shí)這兩個命令是一樣的,只不過在package.json文件中兩者建立了鏈接,如下圖
node_modules不用多說,項(xiàng)目的依賴都安裝于此
public是放置一些公共資源的文件夾,我以后也不會用到它,所以把他給刪掉了
router下的.js文件就是我們寫API的地方了,為了更直觀,我把router名字改為api,把里面的文件名字分別改為post.js和admin.js.(我把a(bǔ)pi分成兩個文件,一個是與文章相關(guān)的,另一個是與管理員相關(guān)的)
views是頁面的模板,因?yàn)槲覀兒蠖酥惶峁?shù)據(jù)接口,所以用不到頁面文件,我把他給刪掉了
app.js是整個項(xiàng)目的入口文件,相當(dāng)于后端項(xiàng)目的大腦,它里面的文件是按順序執(zhí)行
package.json是關(guān)于我們這個項(xiàng)目用到的依賴。
需要說明的是,需要在根目錄下創(chuàng)建一個models的文件夾用來初始化mongodb數(shù)據(jù)庫等一些操作的。
下面就是整理好的后端目錄
安裝方法在這里不多說,網(wǎng)上資源一大堆,可以去官網(wǎng)看官方文檔,我是利用Docker安裝的,方便本地調(diào)試。
安裝完成后不要忘記啟動mongodb
mongoose是mongodb的一個對象模型工具,有了它,可以很方便的操作mongodb數(shù)據(jù)庫,還不是很了解mongoose的小伙伴自行g(shù)oogle,資料有很多。
命令行輸入 npm install mongoose --save
安裝完成后,首先要定義模型
在models文件夾下新建一個post.js 定義文章的模型,填入內(nèi)容
let mongoose = require("mongoose") //引入mogoose //在 Mongoose 中,所有東西都從一個 Schema 開始。每一個 schema 都映射到一個 MongoDb 的集合,并定義了該集合中的文檔的形式。 let postSchema = new mongoose.Schema({ title: String, //規(guī)定文章的標(biāo)題是字符串類型 content: String //規(guī)定文章的內(nèi)容是字符串類型 }) let postModel = mongoose.model("posts", postSchema) //定義模型 module.exports = postModel //通過commonJS模塊語法導(dǎo)出
在models文件夾下新建一個admin.js 定義管理員模型,填入內(nèi)容
let mongoose = require("mongoose") let adminSchema = new mongoose.Schema({ name: String, //用戶名 pass: String //密碼 }) let adminModel = mongoose.model("admin", adminSchema) module.exports = adminModel
繼續(xù)在models文件夾下新建一個init.js 用于連接mongoDB數(shù)據(jù)庫,填入內(nèi)容
let mongoose = require("mongoose") mongoose.connect("mongodb://localhost:27017/blog") // 數(shù)據(jù)庫的端口號根據(jù)需求進(jìn)行調(diào)整,一般直接安裝mongodb并啟動后,端口號默認(rèn)是27017,如果通過docker安裝,端口號會是其他的。blog是我們博客的數(shù)據(jù)庫的名字,如果沒有名字為blog的數(shù)據(jù)庫,會自動添加。 ///打印連接狀態(tài)的日志,可自行選擇寫與不寫 mongoose.connection.on("connected", (req, res) => { console.log("MongoDB connected success") }) mongoose.connection.on("err", (req, res) => { console.log("MongoDB connected fail") }) mongoose.connection.on("disconnected", (req, res) => { console.log("MongoDB connected disconnected") })
下面就重啟我們后端項(xiàng)目,如果上次開啟的進(jìn)程還沒關(guān)掉,命令行control + c關(guān)閉進(jìn)程,輸入npm start重啟項(xiàng)目。
fk,報錯。。
不能找到index這個文件,原來是我們剛剛改了index.js和user.js文件的名字,因?yàn)檫@兩個文件在app.js中被引用,所以找到app.js,
把
和
修改為
修改完成后,執(zhí)行npm start
項(xiàng)目是啟動成功了,但是結(jié)果沒有出現(xiàn)打印的日志
說明我們的數(shù)據(jù)庫沒有連接,找了很久,原來是因?yàn)槲覀兊?b>init.js文件沒有在app.js中引用,那肯定是沒有執(zhí)行init.js文件,因?yàn)榍懊嬲f了整個項(xiàng)目的主入口文件是app.js,所以我們在app.js中引用它
現(xiàn)在重啟項(xiàng)目,看看是不是有了連接成功的日志
數(shù)據(jù)庫已連接成功,那么下一步寫接口!
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/92191.html
摘要:用寫一個上一節(jié)前后端項(xiàng)目分別初始化完成,這一小節(jié)我就從后端項(xiàng)目開始寫。每一個都映射到一個的集合,并定義了該集合中的文檔的形式。 【Part1】用JS寫一個Blog (node + vue + mongoDB) 上一節(jié)前后端項(xiàng)目分別初始化完成,這一小節(jié)我就從后端項(xiàng)目開始寫。實(shí)現(xiàn)mongoDB數(shù)據(jù)庫的連接。 整理后端目錄 下面是通過express-generate生成的項(xiàng)目的目錄 show...
摘要:用寫一個用寫一個上一節(jié)我們把數(shù)據(jù)庫連接成功了,這節(jié)我準(zhǔn)備寫關(guān)于文章的數(shù)據(jù)接口增刪改查上次說到接口都在文件夾里面寫,打開文件,首先引入文章的模型新增文章新增文章方法保存數(shù)據(jù)到數(shù)據(jù)庫如果出現(xiàn)錯誤,直接把錯誤進(jìn)的錯誤中樞處理儲存成功后,返回給客戶 【Part1】用JS寫一個Blog (node + vue + mongoDB)【Part2】用JS寫一個Blog (node + vue + m...
摘要:用寫一個用寫一個上一節(jié)我們把數(shù)據(jù)庫連接成功了,這節(jié)我準(zhǔn)備寫關(guān)于文章的數(shù)據(jù)接口增刪改查上次說到接口都在文件夾里面寫,打開文件,首先引入文章的模型新增文章新增文章方法保存數(shù)據(jù)到數(shù)據(jù)庫如果出現(xiàn)錯誤,直接把錯誤進(jìn)的錯誤中樞處理儲存成功后,返回給客戶 【Part1】用JS寫一個Blog (node + vue + mongoDB)【Part2】用JS寫一個Blog (node + vue + m...
摘要:總的來說就是開發(fā)博客系統(tǒng),探索前端走向全棧之路。我會記錄下來整個過程在我的專欄,有興趣的可以關(guān)注一下,一起學(xué)習(xí),歡迎討論。話不多說,先進(jìn)行前后端項(xiàng)目的初始化。安裝完成后,輸入命令切換到項(xiàng)目文件夾后輸入命令訪問一下項(xiàng)目初始化完成。 學(xué)習(xí)JS也有一段時間了,準(zhǔn)備試著寫一個博客項(xiàng)目,前后端分離開發(fā),后端用node只提供數(shù)據(jù)接口,前端用vue-cli腳手架搭建,路由也由前端控制,數(shù)據(jù)異步交互用...
摘要:總的來說就是開發(fā)博客系統(tǒng),探索前端走向全棧之路。我會記錄下來整個過程在我的專欄,有興趣的可以關(guān)注一下,一起學(xué)習(xí),歡迎討論。話不多說,先進(jìn)行前后端項(xiàng)目的初始化。安裝完成后,輸入命令切換到項(xiàng)目文件夾后輸入命令訪問一下項(xiàng)目初始化完成。 學(xué)習(xí)JS也有一段時間了,準(zhǔn)備試著寫一個博客項(xiàng)目,前后端分離開發(fā),后端用node只提供數(shù)據(jù)接口,前端用vue-cli腳手架搭建,路由也由前端控制,數(shù)據(jù)異步交互用...
閱讀 2784·2021-11-23 09:51
閱讀 3539·2021-10-08 10:17
閱讀 1273·2021-10-08 10:05
閱讀 1327·2021-09-28 09:36
閱讀 1846·2021-09-13 10:30
閱讀 2186·2021-08-17 10:12
閱讀 1682·2019-08-30 15:54
閱讀 2011·2019-08-30 15:53