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