国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

【Part2】用JS寫一個(gè)Blog (node + vue + mongoDB)

charles_paul / 579人閱讀

摘要:用寫一個(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.jsadmin.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ù)等一些操作的。
下面就是整理好的后端目錄

安裝mongoDB數(shù)據(jù)庫(kù)

安裝方法在這里不多說(shuō),網(wǎng)上資源一大堆,可以去官網(wǎng)看官方文檔,我是利用Docker安裝的,方便本地調(diào)試。
安裝完成后不要忘記啟動(dòng)mongodb

安裝mongoose

mongoosemongodb的一個(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.jsuser.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

相關(guān)文章

  • Part2JS一個(gè)Blognode + vue + mongoDB

    摘要:用寫一個(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...

    YPHP 評(píng)論0 收藏0
  • 【Part3】JS一個(gè)Blognode + vue + mongoDB

    摘要:用寫一個(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...

    wuyumin 評(píng)論0 收藏0
  • 【Part3】JS一個(gè)Blognode + vue + mongoDB

    摘要:用寫一個(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...

    CoorChice 評(píng)論0 收藏0
  • 【Part1】JS一個(gè)Blognode + vue + mongoDB

    摘要:總的來(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ù)異步交互用...

    jhhfft 評(píng)論0 收藏0
  • 【Part1】JS一個(gè)Blognode + vue + mongoDB

    摘要:總的來(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ù)異步交互用...

    ctriptech 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<