最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue實(shí)現(xiàn)直連mysql的方法步驟

 更新時(shí)間:2024年11月21日 10:09:21   作者:zhaocarbon  
Vue.js通常運(yùn)行在瀏覽器環(huán)境,而瀏覽器不允許直接與MySQL數(shù)據(jù)庫進(jìn)行連接,本文主要介紹了vue實(shí)現(xiàn)直連mysql的方法步驟,感興趣的可以了解一下

最近又搞了個(gè)小項(xiàng)目,單機(jī)版本的內(nèi)部考勤管理系統(tǒng),直接部署在對(duì)方的工作電腦上,不需要在云端部署,因?yàn)轫?xiàng)目本身就小,我就沒配置后端同事進(jìn)行開發(fā),而是通過VUE直連mysql進(jìn)行業(yè)務(wù)開發(fā)及保存。后期再通過PM2來守護(hù)頁面及服務(wù),隨時(shí)打開使用。

下面來復(fù)盤一下整體開發(fā)過程。

一、mysql及navicat的安裝

1、mysql的安裝

前往官方網(wǎng)站下載安裝,點(diǎn)擊連接->mysql下載及安裝官網(wǎng)

 需求說明的是,這里下載使用5.7.44的版本,8.0及9.0連接機(jī)制有所調(diào)整,會(huì)增加額外的一些配置。這里就不再討論展開。

下載后的步驟一路默認(rèn)進(jìn)行即可。安裝完成后配置環(huán)境變量即可。安裝過程中需要輸入root的密碼,設(shè)置時(shí)記錄好后面連接服務(wù)要用。

 2、navicat的安裝

網(wǎng)上自行找哈,這里也不展開,后期用于設(shè)計(jì)表。

 二、創(chuàng)建Vue項(xiàng)目

CD到指定的目錄后運(yùn)行以下命令,按時(shí)提示完成項(xiàng)目的創(chuàng)建。

vue create 項(xiàng)目名

三、安裝相關(guān)依賴

在項(xiàng)目目錄中依次執(zhí)行如下命令

下載express:npm install express -save

下載cors:npm install cors -save

下載mysql:npm install mysql -save

下載axios:npm install axios -save

下載elementUI:npm install element-ui -save

下載sass:npm install sass -save

等,所有依賴如下,自行查看并安裝即可

四、在項(xiàng)目中創(chuàng)建server文件夾,用于搭建本地服務(wù)器。

4.1、在server文件下創(chuàng)建app.js文件,粘貼以下內(nèi)容。此為api連接服務(wù)。

let express  = require('express')
let cors = require('cors')
let bodyParser = require('body-parser')
let router = require('./router')
let app = express()

app.use(bodyParser.json())
app.use(bodyParser.urlencoded({extended:false}))
app.use(cors())
app.use(router)

app.listen(80,()=>{
    console.log('服務(wù)器啟動(dòng)成功');
})

4.2、在server文件下創(chuàng)建db文件夾,并在db文件夾下創(chuàng)建index.js文件,粘貼以下內(nèi)容。此為mysql連接服務(wù)。注意數(shù)據(jù)庫名及密碼,密碼即1.1步設(shè)置的ROOT密碼,我創(chuàng)建的庫名叫oadb,你創(chuàng)建的叫什么就寫什么。不要寫為user哦,user是表名不是庫名,一個(gè)庫里面有多個(gè)表,注意關(guān)系區(qū)分。

let mysql = require('mysql')

let db = mysql.createConnection({
    host:'127.0.0.1',
    user:'root',
    password:'abel',
    database:'oadb'
})

module.exports = db

4.3、在server文件夾下創(chuàng)建api文件夾,并在api文件夾下創(chuàng)建user.js,用于操作數(shù)據(jù)庫。注意此為示例,這里也僅供部分功能,其他業(yè)務(wù)邏輯功能暫不示例。all方法在API路由表中定義的是get方式,所以取參是req.query.xxx,而del和update方法是POST方法,取參是req.body.xxx,自己注意區(qū)分。

let db = require("../db/index");

exports.all = (req, res) => {
    var sql =
        "select * from t_user";
    db.query(sql, [], (err, data) => {
        if (err) {
            console.log("出錯(cuò)了", err);
            return res.send("錯(cuò)誤" + err.message);
        }
        res.send(data);
    });
};

//刪除人員
exports.del = (req, res) => {
    var sql = "delete from t_user where id = ?";
    db.query(sql, [req.body.id], (err, data) => {
        if (err) {
            console.log("出錯(cuò)了", err);
            return res.send("錯(cuò)誤" + err);
        }
        res.send(data);
    });
};

//更新
exports.update = (req, res) => {
    var sql =
        "update t_user set name = ?,mobile=?,idNo=?,sex=?,noteText=?,groupId=? where id = ?";
    db.query(
        sql,
        [
            req.body.name,
            req.body.mobile,
            req.body.idNo,
            req.body.sex,
            req.body.noteText,
            req.body.groupId,
            req.body.id,
        ],
        (err, data) => {
            if (err) {
                console.log("出錯(cuò)了", err);
                return res.send("錯(cuò)誤" + err);
            }
            res.send(data);
        }
    );
};

 4.4、在server文件夾下創(chuàng)建router.js,用于配置對(duì)應(yīng)api路由,這個(gè)文件管理著所有接口及請(qǐng)求方式,將api與相應(yīng)的表操作類進(jìn)行關(guān)聯(lián)。代碼如下 :

let express = require('express')
let router = express.Router()

let user = require('./api/user')

//用戶相關(guān),get方法
router.get('/user/all',user.all)
//post方法
router.post('/user/del',user.del)
router.post('/user/update',user.update)


module.exports = router

以上完成后項(xiàng)目目錄看起來應(yīng)該是這樣的:

五、設(shè)計(jì)用戶表

5.1、使用navicat設(shè)計(jì)user表,字段簡(jiǎn)要定義如下:

  • id,
  • name,
  • mobile,
  • idNo,
  • sex,

5.2、手動(dòng)插入一條數(shù)據(jù)。這步的目的是為了驗(yàn)證連接是否成功。

CD到server目錄下,運(yùn)行以下命令來啟動(dòng)服務(wù):

node app.js

5.3、驗(yàn)證api連接服務(wù)是否正常

瀏覽器打開http://127.0.0.1/user,因?yàn)槲业谋戆韵伦侄危@示如下:

六、業(yè)務(wù)頁面的開發(fā) 

6.1、注冊(cè)elementUI組件。在mian.js粘貼以下完整代碼:

import Vue from 'vue'
import App from './App.vue'

import Element from 'element-ui'
import './assets/styles/element-variables.scss'
import vuePrototype from '@/utils/vuePrototype'

Vue.use(Element)
Vue.use(vuePrototype)

Vue.config.productionTip = false

new Vue({
  render: h => h(App),
}).$mount('#app')

6、2修改VUE腳本手架生成的頁面,一般叫叫hellowordcomponet,把里面的代碼清空,粘貼以下代碼:

<template>
  <div>
    <button @click="get()">獲取user表數(shù)據(jù)</button>
  </div>
</template>

<script>
import axios from "axios"
export default {
  data () {
    return {
    };
  },

  methods: {
    get() {
      axios.get('http://127.0.0.1/user').then(res=>{
          console.log(res.data);
      }).catch(err=>{
          console.log("獲取數(shù)據(jù)失敗" + err);
      })
    }
  }
}
</script>

不出意外的話,控制臺(tái)打印數(shù)據(jù)如下:

 到此,所有關(guān)鍵點(diǎn)均打通,后期就看你業(yè)務(wù)邏輯,無非就是增加頁面、增加api、增加表、增加加密等。

因?yàn)槲翼?xiàng)目中涉及三個(gè)模塊業(yè)務(wù),所以我的api定義如下,對(duì)應(yīng)三張表,有多少表,就對(duì)應(yīng)多少個(gè)api文件,相互隔離,便于維護(hù)及保持項(xiàng)目結(jié)構(gòu)的清晰。

 我的業(yè)務(wù)頁面:

當(dāng)然你如果不會(huì)mysql查詢就需要查閱資料或者是找后端人員協(xié)助你寫查詢語句。

在此再次強(qiáng)調(diào)接口服務(wù)的參數(shù)寫法,參考4.4,認(rèn)真讀每一行的說明。

all方法在API路由表中定義的是get方式,所以取參是req.query.xxx,del和update方法是POST方法,取參是req.body.xxx,自己注意區(qū)分。

整體開發(fā)完成后,單機(jī)部署請(qǐng)移步以下教程學(xué)習(xí)查看->戳我學(xué)習(xí)單機(jī)部署

到此這篇關(guān)于vue實(shí)現(xiàn)直連mysql的方法步驟的文章就介紹到這了,更多相關(guān)vue 直連mysql內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue設(shè)置瀏覽器小圖標(biāo)(ICON)的詳細(xì)步驟

    Vue設(shè)置瀏覽器小圖標(biāo)(ICON)的詳細(xì)步驟

    vue中網(wǎng)頁圖標(biāo)默認(rèn)使用的是vue自帶的一個(gè)icon的圖標(biāo),也是vue的logo,下面這篇文章主要給大家介紹了關(guān)于Vue設(shè)置瀏覽器小圖標(biāo)(ICON)的詳細(xì)步驟,需要的朋友可以參考下
    2023-01-01
  • Vue用v-for給src屬性賦值的方法

    Vue用v-for給src屬性賦值的方法

    下面小編就為大家分享一篇Vue用v-for給src屬性賦值的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • Element-ui Drawer抽屜按需引入基礎(chǔ)使用

    Element-ui Drawer抽屜按需引入基礎(chǔ)使用

    這篇文章主要為大家介紹了Element-ui Drawer抽屜按需引入基礎(chǔ)使用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • vue2里面ref的具體使用方法

    vue2里面ref的具體使用方法

    本篇文章主要介紹了vue2里面ref的具體使用方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-10-10
  • vue 使用外部JS與調(diào)用原生API操作示例

    vue 使用外部JS與調(diào)用原生API操作示例

    這篇文章主要介紹了vue 使用外部JS與調(diào)用原生API操作,結(jié)合實(shí)例形式分析了vue.js調(diào)用外部JS與原生API相關(guān)操作技巧及注意事項(xiàng),需要的朋友可以參考下
    2019-12-12
  • 在vue3項(xiàng)目中使用新版高德地圖的完整步驟

    在vue3項(xiàng)目中使用新版高德地圖的完整步驟

    項(xiàng)目需求需要引入地圖,對(duì)于目前最新的Vue3.0,無論是百度/高德/騰訊地圖目前還沒有適配,只有Vue?2.x版本的:?目前只有谷歌地圖的Vue3.0適配,下面這篇文章主要給大家介紹了關(guān)于如何在vue3項(xiàng)目中使用新版高德地圖的完整步驟,需要的朋友可以參考下
    2023-02-02
  • Vue.js實(shí)例方法之生命周期詳解

    Vue.js實(shí)例方法之生命周期詳解

    這篇文章主要給大家介紹了關(guān)于Vue.js實(shí)例方法之生命周期的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編一起來學(xué)習(xí)學(xué)習(xí)吧。
    2017-07-07
  • 使用vue-cli編寫vue插件的方法

    使用vue-cli編寫vue插件的方法

    本篇文章主要介紹了使用vue-cli編寫vue插件的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-02-02
  • element?el-select下拉框選擇失效解決辦法

    element?el-select下拉框選擇失效解決辦法

    el-select即選擇器用于從若干個(gè)候選項(xiàng)中選擇其中一個(gè)(或者多個(gè)),在傳統(tǒng)網(wǎng)頁開發(fā)中選擇器經(jīng)常被稱作下拉框、下拉列表是最常用的表單元素之一,這篇文章主要給大家介紹了關(guān)于element?el-select下拉框選擇失效解決辦法,需要的朋友可以參考下
    2023-08-08
  • Vue項(xiàng)目中在父組件中直接調(diào)用子組件的方法

    Vue項(xiàng)目中在父組件中直接調(diào)用子組件的方法

    這篇文章主要給大家介紹了Vue項(xiàng)目中如何在父組件中直接調(diào)用子組件的方法,文章通過代碼示例介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2023-11-11

最新評(píng)論

始兴县| 长治市| 辛集市| 旌德县| 溧阳市| 稻城县| 阳东县| 潞城市| 湘乡市| 西藏| 贵定县| 阿拉善右旗| 沁阳市| 永州市| 上饶县| 岗巴县| 江源县| 资阳市| 泸州市| 清苑县| 苍南县| 娄底市| 宁明县| 札达县| 濮阳市| 天等县| 枝江市| 津市市| 贵阳市| 区。| 葫芦岛市| 平利县| 河东区| 玛纳斯县| 宜宾县| 开封县| 商城县| 延安市| 稻城县| 阜城县| 峨眉山市|