搭建Vue+Express雙模板腳手架02

改造Express生成的初始項(xiàng)目結(jié)構(gòu),使其符合目前使用的規(guī)范渴邦,并且進(jìn)一步code走触,能夠出示一個(gè)簡(jiǎn)單的demo,本地的前端工程和后端工程能夠完成通信,前端成功展示后端返回的數(shù)據(jù)习勤。

目錄結(jié)構(gòu)的變化

Express自動(dòng)創(chuàng)建的server項(xiàng)目代碼結(jié)構(gòu)如下:

express初始項(xiàng)目結(jié)構(gòu).jpg

這個(gè)初始化的目錄結(jié)構(gòu)相對(duì)比較復(fù)雜一點(diǎn)踪栋,而我們?cè)谑褂玫臅r(shí)候有些目錄是不需要的(每個(gè)人根據(jù)實(shí)際的需要進(jìn)行定制化),這里我只需要極簡(jiǎn)的框架結(jié)構(gòu)图毕,易于理解并可以使用即可夷都,變化后的接口框架如下:

express項(xiàng)目結(jié)構(gòu)修改之后.jpg

調(diào)整過后的目錄結(jié)構(gòu)十分簡(jiǎn)潔,一個(gè)請(qǐng)求過來之后予颤,基本的傳播路徑為:

請(qǐng)求的傳播路徑.jpg

當(dāng)然上面給的傳播路徑是期望如此的囤官,但是有的時(shí)候,編碼人員在一開始沒有規(guī)范好就會(huì)導(dǎo)致關(guān)系有錯(cuò)亂蛤虐,個(gè)人覺得這樣會(huì)比較清晰(有其他好的可以交流一下哦!)

Demo源碼實(shí)現(xiàn)

這里只是實(shí)現(xiàn)了一個(gè)最簡(jiǎn)單的GET請(qǐng)求由前端發(fā)起党饮,后端響應(yīng),最后前端展示的demo驳庭,雖然簡(jiǎn)單刑顺,但是基本能夠與上面的請(qǐng)求傳播路徑相互對(duì)齊。

server端源碼

//app.js
const msgInfo = require('./interfaces/i-msgInfo');
app.use('/msgInfo', msgInfo);
//i-msgInfo.js
const express = require('express');
const router = express.Router();
const msgDao = require('../services/msgInfo');

const msgInfo = async(req,res)=>{
    try {
        let msgInfo = await msgDao.getMsgInfo();
        res.send(msgInfo);
    } catch (err) {
        res.send(err)
    }
}

router.get('/', msgInfo);
module.exports = router;
//msgInfo.js
const common  = require('../utils/common');
const msgInfo = {};

msgInfo.getMsgInfo = async () => {
    try {
        let msgInfo = 'Welcome to Your Vue&Express App';
        return msgInfo;
    } catch (err) {
        throw {
            code: common.SERVICEERRCODE,
            msg: err.msg || JSON.stringify(err)
        }
    }
}

module.exports = msgInfo;
//common.js
const common = {};

common.SERVICEERRCODE = 3;

module.exports = common;

最核心的代碼都在上面貼了出來饲常,彼此之間的關(guān)系也十分的明確蹲堂,建議動(dòng)手操作一波。

View端源碼

在前端代碼中不皆,主要改造的是安裝異步請(qǐng)求的包axios贯城,并在HelloWorld中發(fā)起GET請(qǐng)求,將請(qǐng)求的結(jié)果展示在首頁(yè)上霹娄,還需要注意的是跨域的問題能犯。

//main.js
// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import App from './App'
import router from './router'
import axios from 'axios'

Vue.config.productionTip = false

/* eslint-disable no-new */
new Vue({
  el: '#app',
  router,
  components: { App },
  template: '<App/>',
  beforeCreate () {
    window.util = {}
    window.util.$http = axios.create({
      timeout: 1000 * 50,
      withCredentials: true
    })
  }
})
//HelloWorld.vue
export default {
  name: 'HelloWorld',
  data () {
    return {
      msg: ''
    }
  },
  created () {
    //在created中data已經(jīng)初始化完畢,所以可以在這里進(jìn)行賦值
    this.msg = this.getMsg()
  },
  methods: {
    //Get請(qǐng)求犬耻,并將結(jié)果賦值給data中的msg
    getMsg: function () {
      window.util.$http.get('/api/chai/agent/msgInfo').then(r => {
        this.msg = r.data
      })
    }
  }
}
//config/index.js
//這里主要就是解決本地跨域的問題踩晶,在測(cè)試環(huán)境或者生產(chǎn)環(huán)境可以利用其它手段解決跨域
proxyTable: {
    '/api/chai/agent': {
        target: 'http://127.0.0.1:9106/',
        changeOrigin: true,
        pathRewrite: {
            '^/api/chai/agent': ''
        }
    }
}

Demo最終結(jié)果

demo展示結(jié)果.jpg

最終由上圖所示,server返回的結(jié)果枕磁,正確的在前端頁(yè)面上面展示渡蜻。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市计济,隨后出現(xiàn)的幾起案子茸苇,更是在濱河造成了極大的恐慌,老刑警劉巖沦寂,帶你破解...
    沈念sama閱讀 217,277評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件学密,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡传藏,警方通過查閱死者的電腦和手機(jī)腻暮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門彤守,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人哭靖,你說我怎么就攤上這事具垫。” “怎么了试幽?”我有些...
    開封第一講書人閱讀 163,624評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵筝蚕,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我抡草,道長(zhǎng)饰及,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,356評(píng)論 1 293
  • 正文 為了忘掉前任康震,我火速辦了婚禮,結(jié)果婚禮上宾濒,老公的妹妹穿的比我還像新娘腿短。我一直安慰自己,他們只是感情好绘梦,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評(píng)論 6 392
  • 文/花漫 我一把揭開白布橘忱。 她就那樣靜靜地躺著,像睡著了一般卸奉。 火紅的嫁衣襯著肌膚如雪钝诚。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,292評(píng)論 1 301
  • 那天榄棵,我揣著相機(jī)與錄音凝颇,去河邊找鬼。 笑死疹鳄,一個(gè)胖子當(dāng)著我的面吹牛拧略,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播瘪弓,決...
    沈念sama閱讀 40,135評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼垫蛆,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了腺怯?” 一聲冷哼從身側(cè)響起袱饭,我...
    開封第一講書人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎呛占,沒想到半個(gè)月后虑乖,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,429評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡栓票,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評(píng)論 3 334
  • 正文 我和宋清朗相戀三年决左,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了愕够。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,785評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡佛猛,死狀恐怖惑芭,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情继找,我是刑警寧澤遂跟,帶...
    沈念sama閱讀 35,492評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站婴渡,受9級(jí)特大地震影響幻锁,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜边臼,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評(píng)論 3 328
  • 文/蒙蒙 一哄尔、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧柠并,春花似錦岭接、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至粘拾,卻和暖如春窄锅,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背缰雇。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工入偷, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人寓涨。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓盯串,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親戒良。 傳聞我的和親對(duì)象是個(gè)殘疾皇子体捏,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354