Vue+Koa2 入門教程 構建前端后端最簡單的應用


這段時間研究了 Vue 和  Koa2,想把二者結合起來,Vue 作為前端框架,Koa2 作為后端框架,如何打通前后端的數據通過,需要解決跨域問題,現將其中的一些關鍵配置記錄下來,供大家參考:

 

本篇文章主要內容:

· 新建 Vue 前端項目

· 新建 Koa2 后端項目

· 解決跨域問題,實現前端接收后端發來的數據

 

教程所用的項目目錄名稱(名稱可以任意):

|-- vue-mall-mobile
   |-- mall               //Vue 前端目錄 
|-- mall-server //Koa2 后端目錄



1、新建 Vue 項目

 

1.1 首先,我們通過命令行,將目錄切斷到 vue-mall-mobile 下,用官方的  Vue-Cli 生成項目目錄:

npm install -g @vue/cli    //安裝Vue CLI

 

vue create mall    //創建項目

 

1.2 選擇這幾個常用的組件:

 接下來選擇  "Use the history mode for the router" ,選擇  "ESLint + Airbnb config" 和 "Lint on save" ,最后,選擇 “In package.json” 選項,以便將配置放置在 package.json 文件中,而不是單獨的配置文件中。

 

1.3 項目生成完畢后,我們運行:

cd mall
npm run serve 

 

我們打開瀏覽器,輸入 localhost:8080,出現如下界面,說明我們的 Vue 項目已經新建完成。

 1.4 我們來看一下新生成的項目目錄:

 目錄簡析:

App.vue          --根組件,類似於 index.html,用於整合其他組件,將它們一起呈現出來

main.js            --應用程序入口點,用於加載和初始化 Vue 以及其他的插件等

store               -- Vuex 目錄

components    --自定義組件存放地點

router             -- Vue-Router 目錄

 

 

 2、新建Koa2項目

koa 是一個基於 Node.js 平台的新一代 Web 應用開發框架,由 Express 幕后的原班人馬打造,目前最新版本是 koa2 。

2.1 在命令行下運行如下命令,用 npm 安裝 koa-generator

npm install koa-generator -g      //用koa-generator生成項目目錄

 

2.2 然后切換到 vue-mall-mobile 目錄下,執行:

koa2 mall-server                 

 

此時,我們打開 mall-server 目錄,可以看到已經自動生成了項目目錄:

 

2.3 安裝項目依賴:

cd mall-server
npm install

安裝完畢后,我們再次查看項目目錄,會發現多了一個 node_modules 文件夾:

此時運行項目:

npm run dev

運行成功之后,打開瀏覽器,訪問: localhost:3000,出現如下頁面,證明 koa2 已經部署成功。

 

3、配置二者結合

 

3.1 mall-server 項目配置:

3.1.1 因為前端 Koa2 用的是 3000 端口,后端 Vue 用的是 8080 端口,兩者端口不一樣,前端就無法直接獲取后端的數據,也就是跨域訪問。 為了解決解決跨域的問題,需要安裝 koa2-cors :

npm install koa2-cors

 

3.1.2 修改 mall-server\app.js :

const cors = require('koa2-cors');       //添加
app.use(cors({
  origin: function(ctx) {
    return ctx.header.origin
  }, // 允許發來請求的域名
  allowMethods: [ 'GET', 'POST', 'PUT', 'DELETE', 'OPTIONS' ], // 設置所允許的 HTTP請求方法
  credentials: true, // 標示該響應是合法的
}));

將上面兩端代碼添加到 app.js 中。

 

3.1.3 修改 mall-server/routes/users.js :

router.get('/sendText', function (ctx) {         // /sendText為前端請求api
  ctx.body = 'this is a Text'
})

將上面代碼添加到 users.js 里,‘this is a Text’ 為 /sendText 路由的響應。

 

3.2 mall 項目配置:

3.2.1 在 mall 目錄下 新建文件 vue.config.js ,粘貼下列代碼:

module.exports = {
  publicPath: './',
  lintOnSave: false,
  devServer: {
    host: '0.0.0.0',
    port: 8080,
    proxy: 'http://localhost:3000'               //設置代理
  }
}

proxy 屬性尤為關鍵,它完成了一件事情,將默認的請求地址中的 localhost:8080 轉換成了 localhost:3000 ,也就是 Koa2 后端的默認地址,從而可以實現接收來自后端發送過來的數據。

 注:Vue-CLi 默認是不存在  vue.config.js 文件的,需要添加個性化配置時,是需要我們新建的,詳細的配置參考,在 Vue-CLi 的主頁,配置參考頁面下。

 

3.2.2 安裝 axios,用於處理跨域請求:

npm install axios

 

3.2.3 在  mall\src 目錄下 新建文件夾  api ,並新建  index.js,輸入代碼:

class Ajax{
  sendText() {
    axios.get('/users/sendText').then((res) => {
      console.log(JSON.stringify(res))
    })
  }
}

 

此時,我們查看瀏覽器控制台信息:

 

打印出來的消息,就是我們后端發送過來的。

 

OK,到這里就實現了 Vue + Koa 的入門操作,有問題的小伙伴歡迎留言交流。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM