上一節先後端項目分別初始化完成,這一小節我就從後端項目開始寫。實現mongoDB
數據庫的鏈接。vue
下面是經過express-generate
生成的項目的目錄node
bin/www
是項目的啓動文件,啓動項目除了上次說的npm start
,還能夠再命令後執行 node bin/www
,其實這兩個命令是同樣的,只不過在package.json
文件中二者創建了連接,以下圖mongodb
node_modules
不用多說,項目的依賴都安裝於此public
是放置一些公共資源的文件夾,我之後也不會用到它,因此把他給刪掉了router
下的.js文件就是咱們寫API的地方了,爲了更直觀,我把router
名字改成api
,把裏面的文件名字分別改成post.js
和admin.js
.(我把api分紅兩個文件,一個是與文章相關的,另外一個是與管理員相關的)views
是頁面的模板,由於咱們後端只提供數據接口,因此用不到頁面文件,我把他給刪掉了app.js
是整個項目的入口文件,至關於後端項目的大腦,它裏面的文件是按順序執行package.json
是關於咱們這個項目用到的依賴。
須要說明的是,須要在根目錄下建立一個models
的文件夾用來初始化mongodb
數據庫等一些操做的。
下面就是整理好的後端目錄docker
安裝方法在這裏很少說,網上資源一大堆,能夠去官網看官方文檔,我是利用Docker
安裝的,方便本地調試。
安裝完成後不要忘記啓動mongodb數據庫
mongoose
是mongodb
的一個對象模型工具,有了它,能夠很方便的操做mongodb
數據庫,還不是很瞭解mongoose
的小夥伴自行google,資料有不少。
命令行輸入 npm install mongoose --save
express
安裝完成後,首先要定義模型
在models
文件夾下新建一個post.js
定義文章的模型,填入內容npm
let mongoose = require('mongoose') //引入mogoose //在 Mongoose 中,全部東西都從一個 Schema 開始。每個 schema 都映射到一個 MongoDb 的集合,並定義了該集合中的文檔的形式。 let postSchema = new mongoose.Schema({ title: String, //規定文章的標題是字符串類型 content: String //規定文章的內容是字符串類型 }) let postModel = mongoose.model('posts', postSchema) //定義模型 module.exports = postModel //經過commonJS模塊語法導出
在models
文件夾下新建一個admin.js
定義管理員模型,填入內容json
let mongoose = require('mongoose') let adminSchema = new mongoose.Schema({ name: String, //用戶名 pass: String //密碼 }) let adminModel = mongoose.model('admin', adminSchema) module.exports = adminModel
繼續在models
文件夾下新建一個init.js
用於鏈接mongoDB數據庫,填入內容segmentfault
let mongoose = require('mongoose') mongoose.connect('mongodb://localhost:27017/blog') // 數據庫的端口號根據需求進行調整,通常直接安裝mongodb並啓動後,端口號默認是27017,若是經過docker安裝,端口號會是其餘的。blog是咱們博客的數據庫的名字,若是沒有名字爲blog的數據庫,會自動添加。 ///打印鏈接狀態的日誌,可自行選擇寫與不寫 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') })
下面就重啓咱們後端項目,若是上次開啓的進程還沒關掉,命令行control + c
關閉進程,輸入npm start
重啓項目。後端
fk,報錯。。
不能找到index這個文件,原來是咱們剛剛改了index.js
和user.js
文件的名字,由於這兩個文件在app.js
中被引用,因此找到app.js
,
把
和
修改成
修改完成後,執行npm start
項目是啓動成功了,可是結果沒有出現打印的日誌
說明咱們的數據庫沒有鏈接,找了好久,原來是由於咱們的init.js
文件沒有在app.js
中引用,那確定是沒有執行init.js
文件,由於前面說了整個項目的主入口文件是app.js
,因此咱們在app.js
中引用它
如今重啓項目,看看是否是有了鏈接成功的日誌
數據庫已鏈接成功,那麼下一步寫接口!