国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

vue3+ts+element-plus 之使用node.js對接mysql進(jìn)行表格數(shù)據(jù)展示

這篇具有很好參考價值的文章主要介紹了vue3+ts+element-plus 之使用node.js對接mysql進(jìn)行表格數(shù)據(jù)展示。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。


?? 1. 新建一個node項(xiàng)目

* 初始化node

  1. 查看node是否安裝 node -vvue3+ts+element-plus 之使用node.js對接mysql進(jìn)行表格數(shù)據(jù)展示,node.js,mysql,數(shù)據(jù)庫

  2. 初始化命令 npm init
    vue3+ts+element-plus 之使用node.js對接mysql進(jìn)行表格數(shù)據(jù)展示,node.js,mysql,數(shù)據(jù)庫
    初始化配置解釋如下:

package name: (node項(xiàng)目) node-pc//項(xiàng)目名字
version: (1.0.0) //版本號
description: 一個node.js開發(fā)的管理系統(tǒng)后端項(xiàng)目//項(xiàng)目解釋詳情
entry point: (index.js) app.js//全局入口文件
test command: npm test//測試命令
git repository: //git倉庫
keywords: 
author: //作者

完成后會有一個package.json文件
vue3+ts+element-plus 之使用node.js對接mysql進(jìn)行表格數(shù)據(jù)展示,node.js,mysql,數(shù)據(jù)庫

* 安裝可能用到的依賴

根據(jù)需求安裝,我這里需要對接mysql,安裝依賴 ,我是一次性安裝完,后邊會直接使用,也可以邊安裝邊使用。如下

//安裝express框架
npm install express
//安裝數(shù)據(jù)庫
npm install mysql
//安裝加密解密的bcryptjs
npm i bcryptjs@2.4.3
//安裝nodemon,實(shí)時監(jiān)聽node修改的代碼
npm install nodemon
//跨域
npm install cors

安裝成功如下:
vue3+ts+element-plus 之使用node.js對接mysql進(jìn)行表格數(shù)據(jù)展示,node.js,mysql,數(shù)據(jù)庫
vue3+ts+element-plus 之使用node.js對接mysql進(jìn)行表格數(shù)據(jù)展示,node.js,mysql,數(shù)據(jù)庫
vue3+ts+element-plus 之使用node.js對接mysql進(jìn)行表格數(shù)據(jù)展示,node.js,mysql,數(shù)據(jù)庫
vue3+ts+element-plus 之使用node.js對接mysql進(jìn)行表格數(shù)據(jù)展示,node.js,mysql,數(shù)據(jù)庫
vue3+ts+element-plus 之使用node.js對接mysql進(jìn)行表格數(shù)據(jù)展示,node.js,mysql,數(shù)據(jù)庫

* 配置文件目錄

  • 下圖1中新增文件分別為,靜態(tài)文件放置處、項(xiàng)目邏輯文件、全局入口文件
  • 下圖2中是app.js初始化內(nèi)容,使用node app.js是項(xiàng)目運(yùn)行起來,如圖中3
    vue3+ts+element-plus 之使用node.js對接mysql進(jìn)行表格數(shù)據(jù)展示,node.js,mysql,數(shù)據(jù)庫
    上邊有安裝安裝nodemon,實(shí)時監(jiān)聽node修改的代碼,這里可以在package.json中添加 "start": "nodemon app.js",之后使用npm start啟動

vue3+ts+element-plus 之使用node.js對接mysql進(jìn)行表格數(shù)據(jù)展示,node.js,mysql,數(shù)據(jù)庫

* 添加路由router

1. 添加router.js文件,添加一個test目錄

vue3+ts+element-plus 之使用node.js對接mysql進(jìn)行表格數(shù)據(jù)展示,node.js,mysql,數(shù)據(jù)庫

2. 修改app.js ,引入router
const router=require('./views/router/router');
//使用
app.use('/', cors(), router);
app.listen(3000, function () {
    console.log("項(xiàng)目啟動")
})
?? 3. 啟動并在瀏覽器打開

vue3+ts+element-plus 之使用node.js對接mysql進(jìn)行表格數(shù)據(jù)展示,node.js,mysql,數(shù)據(jù)庫
vue3+ts+element-plus 之使用node.js對接mysql進(jìn)行表格數(shù)據(jù)展示,node.js,mysql,數(shù)據(jù)庫

* 連接mysql 并做表格查詢

1. 創(chuàng)建/views/db/index.js文件,并填寫數(shù)據(jù)庫基礎(chǔ)信息

vue3+ts+element-plus 之使用node.js對接mysql進(jìn)行表格數(shù)據(jù)展示,node.js,mysql,數(shù)據(jù)庫

1. 修改app.js ,引入mysql
const db = require('./views/db/index')//導(dǎo)入數(shù)據(jù)庫操作模塊


// 查詢命令
const sqlStr = 'select * from mq_user'
db.query(sqlStr, (err, results) => {
    if (err) return console.log(err.message)
    // 能夠成功的執(zhí)行 SQL 語句
    console.log(results);
});

?? 3. 啟動后 終端打印查詢到的數(shù)據(jù)

vue3+ts+element-plus 之使用node.js對接mysql進(jìn)行表格數(shù)據(jù)展示,node.js,mysql,數(shù)據(jù)庫

* node 寫一個get接口,返回mysql用戶表單中的列表數(shù)據(jù)

1. 把上一部引入的mysql轉(zhuǎn)移到router.js文件中

vue3+ts+element-plus 之使用node.js對接mysql進(jìn)行表格數(shù)據(jù)展示,node.js,mysql,數(shù)據(jù)庫

2. router.js種寫get請求
// 參數(shù)1:客戶端請求的URL地址
// 參數(shù)2:請求對應(yīng)的處理函數(shù)
// 	  req:請求 相關(guān)的屬性和方法
// 	  res:響應(yīng) 相關(guān)的屬性和方法
router.get('/adminList', function (req, res) {
    res.setHeader('Content-Type', 'application/json;charset=utf-8')
    // res.end(JSON.stringify({ "code": 200,"dataList":date}))//end 傳的是字符串類型
    res.send({ "code": 200,"dataList":date})//可以傳遞對象
})
?? 3. 啟動并在瀏覽器打開(因?yàn)槭褂玫膅et請求直接在瀏覽器打開)

vue3+ts+element-plus 之使用node.js對接mysql進(jìn)行表格數(shù)據(jù)展示,node.js,mysql,數(shù)據(jù)庫

* node 寫一個post接口,添加一條表格數(shù)據(jù)

1. router.js種寫post請求
router.post('/addAdminList', function (req, res) {
    console.log(req) //獲取客戶端傳參數(shù)
    res.send()//向客戶端發(fā)送響應(yīng)數(shù)據(jù)
})
2. 添加multer 中間件用于處理文件上傳,并將上傳的文件保存到指定的目錄中。
1. 下載:npm install nodemon 引入 ,
//---------  處理文件上傳,保存的文件格式取決于上傳的文件本身,
const multer = require('multer');
const upload = multer({ dest: 'uploads/' });//創(chuàng)建文件保存路徑 uploads/

添加到post請求之中,變成這樣

router.post('/addAdminList', upload.single('file'),function (req, res) {
    res.setHeader('Content-Type', 'multipart/form-data')
    console.log(req);
    res.send({ "code": 200, "data": 'ok' });
})
?? 運(yùn)行后如下:node項(xiàng)目會多一個文件夾

vue3+ts+element-plus 之使用node.js對接mysql進(jìn)行表格數(shù)據(jù)展示,node.js,mysql,數(shù)據(jù)庫

2. 引入fs ,Node.js 內(nèi)置的文件系統(tǒng)模塊,用于處理文件和目錄的讀取、寫入、修改和刪除等操作
const fs = require('fs');
3. 接收一個pdf文件,下載依賴并引入:npm install pdf-lib,根目錄創(chuàng)建一個patch用于保存pdf文件

-引入:const { PDFDocument } = require('pdf-lib');
-使用:代碼修改如下

router.post('/addAdminList', upload.single('file'), async function (req, res) {
    res.setHeader('Content-Type', 'multipart/form-data')
    console.log(req.body);
    console.log(req.file);
    const filePath = req.file.path;
    try {
        // 讀取上傳的文件內(nèi)容
        const fileContent = fs.readFileSync(filePath);
        // 創(chuàng)建一個新的 PDF 文檔
        const pdfDoc = await PDFDocument.create();
        // 將上傳的文件作為附件嵌入到 PDF 文檔中
        const attachment = await pdfDoc.embedPdf(fileContent);
        // 創(chuàng)建一個新的頁面,并添加一個鏈接到附件文件
        const page = pdfDoc.addPage();
        page.drawText('Click here to open the attached file', {
            x: 50,
            y: 50,
            size: 12,
            underline: true,
            link: attachment,
        });
        // 保存 PDF 文件
        const pdfBytes = await pdfDoc.save();
        const pdfFilePath = `path/${req.file.originalname}`;
        fs.writeFileSync(pdfFilePath, pdfBytes);
        // 刪除上傳的原始文件
        fs.unlinkSync(filePath);
        res.send({ "code": 200, "data": 'ok' });
    } catch (error) {
        console.error(error);
        return res.status(500).send('Error converting file to PDF');
    }
})
4. 啟動node項(xiàng)目,

vue3+ts+element-plus 之使用node.js對接mysql進(jìn)行表格數(shù)據(jù)展示,node.js,mysql,數(shù)據(jù)庫

??3. 前端上傳一次請求后node運(yùn)行如下,(前端代碼在最后一條)

vue3+ts+element-plus 之使用node.js對接mysql進(jìn)行表格數(shù)據(jù)展示,node.js,mysql,數(shù)據(jù)庫

?? 2. node開發(fā)的借口對接vue3管理系統(tǒng)

使用接口時候node項(xiàng)目要是運(yùn)行狀態(tài),不能關(guān)閉

1. vue3+ts+element-plus項(xiàng)目相關(guān)筆記

以上已經(jīng)實(shí)現(xiàn)node開發(fā)的通過get獲取到mysql中用戶列表數(shù)據(jù),后邊將獲取到的數(shù)據(jù)。
使用axios接入到vue3+ts項(xiàng)目中
關(guān)于vue3+ts項(xiàng)目搭建和axios引入可以看這兩篇筆記,
??
vue3+ts+element-plus管理系統(tǒng)實(shí)際開發(fā)業(yè)務(wù)之增刪改查
?? 從0實(shí)戰(zhàn)一個 vue3+ ts+element-plus
項(xiàng)目

vue3+ts+element-plus 之使用node.js對接mysql進(jìn)行表格數(shù)據(jù)展示,node.js,mysql,數(shù)據(jù)庫

vue3+ts+element-plus 之使用node.js對接mysql進(jìn)行表格數(shù)據(jù)展示,node.js,mysql,數(shù)據(jù)庫

2. 新建api文件adminTable.ts,并添加一個get請求方法(vue3前端項(xiàng)目)

vue3+ts+element-plus 之使用node.js對接mysql進(jìn)行表格數(shù)據(jù)展示,node.js,mysql,數(shù)據(jù)庫

3. 獲取列表數(shù)據(jù)并渲染到頁面

* 引入get請求方法到tableList.vue文件中,并配置列表字段
import {adminList } from '../../api/adminTable'
let tableData = ref([])
//---- 獲取列表數(shù)據(jù)相關(guān)代碼 ----
onMounted(() => {
    adminList().then(((res: any) => {
        console.log(res.dataList)
        tableData=res.dataList
    }))
})
?? *運(yùn)行效果vue3+ts+element-plus 之使用node.js對接mysql進(jìn)行表格數(shù)據(jù)展示,node.js,mysql,數(shù)據(jù)庫
* 踩了個小坑-- reactive() 不可重新賦值(會丟失響應(yīng)性),如果需要賦值操作需要使用ref,ref() 有一個 .value 屬性可以用來重新賦值

4. 添加一條數(shù)據(jù)到表格中

* 引入post請求方法并添加到tableList.vue文件中
  • 請求方法設(shè)置
    vue3+ts+element-plus 之使用node.js對接mysql進(jìn)行表格數(shù)據(jù)展示,node.js,mysql,數(shù)據(jù)庫
* 引入使用
import { addList } from '../../api/index'
* 具體表單和獲取數(shù)據(jù)提交在之前同系列博客有寫過,這里直接用。

vue3+ts+element-plus 之使用node.js對接mysql進(jìn)行表格數(shù)據(jù)展示,node.js,mysql,數(shù)據(jù)庫

?? 發(fā)起請求

vue3+ts+element-plus 之使用node.js對接mysql進(jìn)行表格數(shù)據(jù)展示,node.js,mysql,數(shù)據(jù)庫
vue3+ts+element-plus 之使用node.js對接mysql進(jìn)行表格數(shù)據(jù)展示,node.js,mysql,數(shù)據(jù)庫文章來源地址http://www.zghlxwxcb.cn/news/detail-613616.html

本人發(fā)布文章都是個人學(xué)習(xí)筆記,如果有不對的希望路過的能指出,感謝!

到了這里,關(guān)于vue3+ts+element-plus 之使用node.js對接mysql進(jìn)行表格數(shù)據(jù)展示的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 詳解Vite創(chuàng)建Vue3項(xiàng)目+vue-router+ts+vite+element-plus

    詳解Vite創(chuàng)建Vue3項(xiàng)目+vue-router+ts+vite+element-plus

    前言 在之前的文章中寫過“Vue3+TS+ElementPlus的安裝和使用教程【詳細(xì)講解】”,但那篇文章寫的是創(chuàng)建vue3的項(xiàng)目沒有使用到Vite構(gòu)建工具進(jìn)行創(chuàng)建還是使用的常規(guī)webpacket構(gòu)建工具進(jìn)行創(chuàng)建的。提到Vite和webpacket的時候我們可以簡單說一下。 Vite 和 Webpack 都是現(xiàn)代化的前端構(gòu)建工

    2024年01月18日
    瀏覽(23)
  • 從0開始搭建一個vue3+vite+ts+pinia+element-plus的項(xiàng)目

    從0開始搭建一個vue3+vite+ts+pinia+element-plus的項(xiàng)目

    前言:vue3+ts+vite大家已經(jīng)都開始用了,最近也在學(xué)習(xí),基本上是零基礎(chǔ)開始ts的學(xué)習(xí),很多語法知識是邊寫邊查,沒有系統(tǒng)的學(xué)習(xí)ts。此處展示從零開始,搭建的一個框架,方便拿來即用! 其中框架選擇vue,語言選擇typeScript 項(xiàng)目啟動成功以后如下所示: 為了方便日常工作中

    2024年02月06日
    瀏覽(28)
  • vue3+ts+element-plus實(shí)際開發(fā)之導(dǎo)出表格和不同類型之間相互賦值

    vue3+ts+element-plus實(shí)際開發(fā)之導(dǎo)出表格和不同類型之間相互賦值

    1. 安裝依賴 npm run xlsx 2. 引入,import * as XLSX from “xlsx”; 3. 報錯找不到模塊“xlsx”或其相應(yīng)的類型聲明 修改成大寫就好了 import * as XLSX from \\\'XLSX\\\' ,如果沒有報提示就直接用 4. 使用導(dǎo)出文件 //---- 導(dǎo)出表 1. 直接用a標(biāo)簽下載 鼠標(biāo)移入樣式,點(diǎn)擊自動下載 2. 有特殊數(shù)據(jù)需要解析

    2024年02月15日
    瀏覽(29)
  • 超級詳細(xì) 最新 vite4+vue3+ts+element-plus+eslint-prettier 項(xiàng)目搭建流程

    系列文章目錄 【element-plus】 table表格每行圓角解決方案 element也通用 【Vue3+Vite+Ts+element-plus】使用tsx實(shí)現(xiàn)左側(cè)欄菜單無限層級封裝 超級詳細(xì)GitBook和GitLab集成步驟【linux環(huán)境】 1.1、項(xiàng)目創(chuàng)建 執(zhí)行以下代碼將vite將會自動生成初始的 vite4+vue3+ts的項(xiàng)目模板,pnpm、npm、yarn 選擇一種執(zhí)

    2024年02月04日
    瀏覽(25)
  • Vue3 + TS + Element-Plus —— 項(xiàng)目系統(tǒng)中封裝表格+搜索表單 十分鐘寫五個UI不在是問題

    Vue3 + TS + Element-Plus —— 項(xiàng)目系統(tǒng)中封裝表格+搜索表單 十分鐘寫五個UI不在是問題

    前期回顧 純前端 —— 200行JS代碼、實(shí)現(xiàn)導(dǎo)出Excel、支持DIY樣式,縱橫合并-CSDN博客 https://blog.csdn.net/m0_57904695/article/details/135537511?spm=1001.2014.3001.5501 目錄 一、?????newTable.vue 封裝Table 二、?? newForm.vue 封裝搜索表單? 三、?? TS類型?srctypesglobal.d.ts 四、?? 頁面使用功能

    2024年01月24日
    瀏覽(25)
  • vue3使用element-plus

    vue3使用element-plus

    element-ui 是配合 vue2 使用,element-plus 是配置 vue3 使用的 1. 包管理器的方式 如果是使用?webpack 或者 vite 打包工具新建的項(xiàng)目 2. 瀏覽器直接導(dǎo)入 直接通過瀏覽器的 HTML 標(biāo)簽導(dǎo)入 Element Plus,然后就可以使用全局變量 ElementPlus 1. 導(dǎo)入全部組件且注冊所有的圖標(biāo) 聲明使用 ElementPl

    2024年02月08日
    瀏覽(35)
  • vue3 vue.config.js配置Element-plus組件和Icon圖標(biāo)實(shí)現(xiàn)按需自動引入

    vue3 vue.config.js配置Element-plus組件和Icon圖標(biāo)實(shí)現(xiàn)按需自動引入

    打包時,報警告,提示包太大會影響性能 在頁面直接使用,直接使用 SVG 圖標(biāo),當(dāng)做一般的 svg 使用 icon使用時需要用以下兩種方式方式: 如果用在el-button里面的icon屬性上使用,用SVG方式無效,還是需要引入再使用(不知道有沒有其他方式) 注意: 使用 :icon=\\\"Edit\\\" 則icon的大

    2024年02月06日
    瀏覽(107)
  • 記錄--vue3優(yōu)雅的使用element-plus的dialog

    記錄--vue3優(yōu)雅的使用element-plus的dialog

    擺脫繁瑣的 visible 的命名,以及反復(fù)的重復(fù) dom。 將 dialog 封裝成一個函數(shù)就能喚起的組件。如下: ? 首先定義了 dialogList,它包含了所有彈窗的信息。 component 使用 componet is 去動態(tài)加載子組件 addDialog 調(diào)用喚起彈窗的函數(shù) closeDialog 關(guān)閉彈窗的函數(shù) 創(chuàng)建一個彈窗組件 在列表頁面

    2024年02月05日
    瀏覽(24)
  • 在Vue3中使用Element-Plus分頁(Pagination )組件

    在Vue3中使用Element-Plus分頁(Pagination )組件

    開發(fā)過程中數(shù)據(jù)展示會經(jīng)常使用到,同時分頁功能也會添加到頁面中。 記: 在Vue3中使用Element-Plus分頁組件與表格數(shù)據(jù)實(shí)現(xiàn)分頁交互。 引入表格和分頁組件的H5標(biāo)簽。 js代碼,先初始化變量。 沒用到后臺,所以就把表格的數(shù)據(jù)寫固定了。下面就表格數(shù)據(jù)生成,還有模擬對數(shù)據(jù)

    2024年02月05日
    瀏覽(29)
  • 解決Vue3 使用Element-Plus導(dǎo)航刷新active高亮消失

    解決Vue3 使用Element-Plus導(dǎo)航刷新active高亮消失

    啟用路由模式會在激活導(dǎo)航時以 index 作為 path 進(jìn)行路由跳轉(zhuǎn) 使用 default-active 來設(shè)置加載時的激活項(xiàng)。 接下來打印一下選中項(xiàng)index和index路徑, 刷新也是沒有任何問題的,active不會消失,整體代碼如下:

    2024年02月14日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包