nuxt.js+express后端api接口配置與實(shí)現(xiàn)方式

Nuxt.js 是一個(gè)基于 Vue.js 的輕量級(jí)應(yīng)用框架,可用來(lái)創(chuàng)建服務(wù)端渲染 (SSR) 應(yīng)用哮肚。本文帶你了解在 Nuxt.js 中使用 Express 如何編寫(xiě)實(shí)現(xiàn)后端的 api 接口鸭蛙。

創(chuàng)建接口文件

在項(xiàng)目根目錄中新建 server 文件夾并在該文件夾下創(chuàng)建一個(gè) index.js 文件。

server
└── index.js

然后,在 server/index.js 中使用 Express 創(chuàng)建服務(wù)器路由中間件骚灸,以下創(chuàng)建一個(gè)返回字符串 ‘Hello World!’ 的簡(jiǎn)單接口示例。

const app = require('express')();

app.get('/hello', (req, res) => {
  res.send('Hello World!')
})

module.exports = {
  path: 'api',
  handler: app
}

接下來(lái),修改 nuxt.config.js 文件祟绊,在 serverMiddleware 配置項(xiàng)中添加 api 中間件。

module.exports = {
  serverMiddleware: [
    // API middleware
    '~/server/index.js'
  ],
}

現(xiàn)在哥捕,重啟服務(wù):

npm run dev

啟動(dòng)后牧抽,在瀏覽器地址欄中輸入 http://localhost:3000/api/hello 查看是否成功返回 ‘Hello World!’。

對(duì)于如何注冊(cè)第三方路由的詳細(xì)用法請(qǐng)查看 nuxt.config.js 配置文檔serverMiddleware屬性的介紹遥赚。

在頁(yè)面中請(qǐng)求 api 數(shù)據(jù)

Nuxt.js添加了一種 asyncData 方法扬舒,可讓您在初始化組件之前處理異步操作。asyncData 每次在加載頁(yè)面組件之前都會(huì)調(diào)用凫佛。此方法將上下文作為第一個(gè)參數(shù)讲坎,您可以使用它來(lái)獲取一些數(shù)據(jù),Nuxt.js 會(huì)將其與組件數(shù)據(jù)合并愧薛。

修改 api/hello 接口晨炕,使之返回 JSON 數(shù)據(jù)。

app.get('/hello', (req, res) => {
  res.json({
    title: 'Hello World!'
  })
})

在 pages/index.vue 中請(qǐng)求上面修改完成的 api/hello 接口毫炉。

export default {
  asyncData () {
    return fetch('http://localhost:3000/api/hello', { method: 'GET' })
      .then(res => res.json())
      .then(res => {
        // asyncData 方法獲取的數(shù)據(jù)會(huì)與組件數(shù)據(jù)合并瓮栗,所以這里返回對(duì)象
        return {
          title: res.title
        }
      })
  }
}

如果需要請(qǐng)求多個(gè)接口,可如下示例:

<template>
  <div>
    <h1>{{ title }}</h1>
    <ul>
      <li v-for="item in list" :key="item.id">{{ item.title }}</li>
    </ul>
  </div>
</template>

<script lang="ts">
export default {
  async asyncData () {
    let res1 = await  fetch('http://localhost:3000/api/hello', { method: 'GET' }).then(res => res.json());
    let res2 = await fetch('http://localhost:3000/api/list', { method: 'GET' }).then(res => res.json());
    console.log(res1,res2.data)
    return {
      title: res1.title,
      list: res2.data
    };
  }
}
</script>

接下來(lái)只需在 template 中綁定 title 即可顯示請(qǐng)求返回的數(shù)據(jù)瞄勾。

<template>
  <h1>{{ title }}<h1>
</template>

關(guān)于異步獲取數(shù)據(jù)請(qǐng)移步文檔asyncData的介紹费奸。
文章出處:Nuxt+Express后端api接口配置與實(shí)現(xiàn)方式

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市进陡,隨后出現(xiàn)的幾起案子愿阐,更是在濱河造成了極大的恐慌,老刑警劉巖四濒,帶你破解...
    沈念sama閱讀 216,651評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件换况,死亡現(xiàn)場(chǎng)離奇詭異职辨,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)戈二,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)舒裤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人觉吭,你說(shuō)我怎么就攤上這事腾供。” “怎么了鲜滩?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,931評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵伴鳖,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我徙硅,道長(zhǎng)榜聂,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,218評(píng)論 1 292
  • 正文 為了忘掉前任嗓蘑,我火速辦了婚禮须肆,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘桩皿。我一直安慰自己豌汇,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,234評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布泄隔。 她就那樣靜靜地躺著拒贱,像睡著了一般。 火紅的嫁衣襯著肌膚如雪佛嬉。 梳的紋絲不亂的頭發(fā)上逻澳,一...
    開(kāi)封第一講書(shū)人閱讀 51,198評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音暖呕,去河邊找鬼赡盘。 笑死,一個(gè)胖子當(dāng)著我的面吹牛缰揪,可吹牛的內(nèi)容都是我干的陨享。 我是一名探鬼主播,決...
    沈念sama閱讀 40,084評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼钝腺,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼抛姑!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起艳狐,我...
    開(kāi)封第一講書(shū)人閱讀 38,926評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤定硝,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后毫目,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體蔬啡,經(jīng)...
    沈念sama閱讀 45,341評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡诲侮,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,563評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了箱蟆。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片沟绪。...
    茶點(diǎn)故事閱讀 39,731評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖空猜,靈堂內(nèi)的尸體忽然破棺而出绽慈,到底是詐尸還是另有隱情,我是刑警寧澤辈毯,帶...
    沈念sama閱讀 35,430評(píng)論 5 343
  • 正文 年R本政府宣布坝疼,位于F島的核電站,受9級(jí)特大地震影響谆沃,放射性物質(zhì)發(fā)生泄漏钝凶。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,036評(píng)論 3 326
  • 文/蒙蒙 一唁影、第九天 我趴在偏房一處隱蔽的房頂上張望腿椎。 院中可真熱鬧,春花似錦夭咬、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,676評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)膀钠。三九已至掏湾,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間肿嘲,已是汗流浹背融击。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,829評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留雳窟,地道東北人尊浪。 一個(gè)月前我還...
    沈念sama閱讀 47,743評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像封救,于是被迫代替她去往敵國(guó)和親拇涤。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,629評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容