中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用vue+node作后端連接數據庫

發布時間:2023-03-11 09:52:54 來源:億速云 閱讀:296 作者:iii 欄目:開發技術

這篇文章主要介紹了如何使用vue+node作后端連接數據庫的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇如何使用vue+node作后端連接數據庫文章都會有所收獲,下面我們一起來看看吧。

1、編寫node服務器

先下載幾個依賴包

express(用于網絡連接) 

npm i express --save

cors(用于處理跨域問題)

npm i cors --save

接下來好還需要處理一下前端傳過來的數據,對于get請求無需特殊處理,但是對于post請求發送的數據類型取決于post請求頭Content-type的類型。常見三種

multipart/form-data 、 application/x-www-form-urlencode 、 application/json(最常用)

這幾種類型想要了解更多可自行百度

為了處理這幾種類型需要下載幾個依賴包

npm i body-parser --save
npm i connect-multiparty --save
 新建 index.js 文件
/*
 * @Author: maximing
 * @Date: 2022-12-28 09:06:42
 * @LastEditTime: 2022-12-28 11:23:40
 * @LastEditors: your name
 * @Description: 請添加描述
 * @FilePath: \domysql\src\server\index.js
 */
 
const express = require('express')
const app = express()
 
const cors = require('cors') //解決跨域問題
app.use(cors())
 
const bodyParser = require('body-parser')
const multiparty = require('connect-multiparty')
// 處理 x-www-form-urlencoded 
app.use(bodyParser.urlencoded({ extended: true }))
// 處理 mutipart/form-data
app.use(multiparty())
// 處理 application/json
app.use(bodyParser.json())
 
//一個簡單的測試接口
app.get('/test',(req,res)=>{
    res.send('測試用的接口')
})
 
//監聽node服務器的端口號
app.listen(3000, () => {
	console.log('恭喜你,服務器啟動成功')
})

 接下來啟動node服務器。進入對應的index.js所在的文件夾,在搜索欄輸入cmd按回車進入終端

如何使用vue+node作后端連接數據庫

啟動剛才編寫的index.js文件

如何使用vue+node作后端連接數據庫

然后打開瀏覽器輸入 localhost:3000/  

 3000端口號是我們剛才監聽時使用的,是我們的node服務的端口號

如何使用vue+node作后端連接數據庫

到這我們已經完成了服務器的搭建,并且寫了一個簡單的接口 !

2、用node連接數據庫

先下載一個依賴 mysql (用于連接數據庫)

npm i mysql --save

新建一個mysql.js文件,和index.js 同級目錄哦

/*
 * @Author: maximing
 * @Date: 2022-12-28 09:33:17
 * @LastEditTime: 2022-12-28 09:52:00
 * @LastEditors: your name
 * @Description: 請添加描述
 * @FilePath: \domysql\src\server\mysql.js
 */
 
const mySql = require('mysql')
//連接數據庫的配置信息
const db_config = { 
	host: 'localhost', //本地都是localhost
	user: 'root', //賬戶名
	password: '12345', //密碼
	port: '3306', //端口號
	database: 'demo' //數據庫的名稱
}
 
function conMysql(sql) {
    //創建數據庫連接池
	let Myconnect = mysql.createConnection(db_config)
	//開始連接數據庫
	Myconnect.connect(function (err) {
		if (err) {
			console.log(`myqsl連接失敗:${err}!`)
		} else {
			console.log('恭喜哦,mysql連接成功哦')
		}
	})
 
	//因為query查詢是一個異步操作,所以用promise來操作
	return new Promise((resolve, reject) => {
        //query() 函數用于mysql語句查詢
		connect.query(sql, (err, result) => {
			if (err) {
				reject(err)
			} else {
				let res = JSON.parse(JSON.stringify(result))
				closeMysql(connect)  //調用函數關閉mysql連接
				resolve(res)
			}
		});
	})
}
 
//關閉mysql數據庫的函數
function closeMysql(Myconnect) {
	Myconnect.end((err) => {
		if (err) {
			console.log(`mysql關閉失敗:${err}!`)
		} else {
			console.log('mysql關閉成功')
		}
	})
}
 
//導出conMysql函數
exports.conMysql = conMysql

連接數據庫的函數已經寫好并導出,接下來就要在剛剛寫完的index.js文件里接著往下寫一個簡單數據庫查詢接口

/*
 * @Author: maximing
 * @Date: 2022-12-28 09:06:42
 * @LastEditTime: 2022-12-28 11:23:40
 * @LastEditors: your name
 * @Description: 請添加描述
 * @FilePath: \domysql\src\server\index.js
 */
 
const express = require('express')
const app = express()
 
const cors = require('express') //解決跨域問題
app.use(cors())
 
const bodyParser = require('body-parser')
const multiparty = require('connect-multiparty')
// 處理 x-www-form-urlencoded 
app.use(bodyParser.urlencoded({ extended: true }))
// 處理 mutipart/form-data
app.use(multiparty())
// 處理 application/json
app.use(bodyParser.json())
//導入我們上一步寫的連接數據庫的函數
const {conMysql} = require('./mysql')
//創建統一的返回報文對象
class Response {
	constructor(isSucceed, msg, code, data) {
		this.isSucceed = isSucceed;
		this.msg = msg;
		this.code = code;
		this.data = data;
	}
}
 
//一個簡單的測試接口
app.get('/test',(req,res)=>{
    res.send('測試用的接口')
})
 
//一個簡單的接口,查詢數據庫中的信息
app.get('/getUser', (req, res) => {
	let sql = 'select * from test'
	conMysql(sql).then(result => {
		res.send(result)
	})
})
 
//監聽node服務器的端口號
app.listen(3000, () => {
	console.log('恭喜你,服務器啟動成功')
})

貼一下我的數據庫的表

如何使用vue+node作后端連接數據庫

 在瀏覽器輸入我們剛才寫的接口地址

如何使用vue+node作后端連接數據庫

 ok,到這我們已經成功連接上數據庫并進行了數據的查詢

3、編寫前端頁面

用vue的腳手架新建一個vue項目

貼一下我的項目目錄

如何使用vue+node作后端連接數據庫

 寫一個前端展示的界面

<template>
	<div>
        <input v-model="user" placeholder="輸入用戶名查詢用戶信息">
		<button @click="getUser">點擊獲取用戶信息</button>
	</div>
</template>
 
<script>
export default {
	name: 'userInfor',
	data() {
		return {
			userInfo: '',
			user: '',
		}
	},
	methods: {
 
	},
	created() {
 
	}
}
</script>
 
<style>
</style>

接下來我們還需要安裝axios依賴包,用于發送網絡請求給后端

npm i axios --save

對axios二次封裝

在axios文件夾下新建一個index.js 文件

import Axios from 'axios'
const instance = Axios.create({
	baseURL: '/api'
})
 
instance.interceptors.request.use((config) => {
	console.log(config, '發送請求前config信息')
	return config
}, err => {
	return Promise.reject(err)
})
 
instance.interceptors.response.use((res) => {
	console.log('接受的數據')
	return res.data
}, err => {
	return Promise.reject(err)
})
 
export default instance

 在同級目錄下新建一個api.js文件,用于統一處理接口

import request from './index'
 
//獲取用戶信息接口
export const getUserInfo = (data) => request.get('/getUserInfo', { params: data })

在剛才我們寫node服務器的index.js文件里面添加一個根據用戶id查詢信息的后端接口

/*
 * @Author: maximing
 * @Date: 2022-12-28 09:06:42
 * @LastEditTime: 2022-12-28 11:23:40
 * @LastEditors: your name
 * @Description: 請添加描述
 * @FilePath: \domysql\src\server\index.js
 */
 
const express = require('express')
const app = express()
 
const cors = require('express') //解決跨域問題
app.use(cors())
 
const bodyParser = require('body-parser')
const multiparty = require('connect-multiparty')
// 處理 x-www-form-urlencoded 
app.use(bodyParser.urlencoded({ extended: true }))
// 處理 mutipart/form-data
app.use(multiparty())
// 處理 application/json
app.use(bodyParser.json())
//導入我們上一步寫的連接數據庫的函數
const {conMysql} = require('./mysql')
//創建統一的返回報文對象
class Response {
	constructor(isSucceed, msg, code, data) {
		this.isSucceed = isSucceed;
		this.msg = msg;
		this.code = code;
		this.data = data;
	}
}
 
 
//一個簡單的測試接口
app.get('/test',(req,res)=>{
    res.send('測試用的接口')
})
 
//一個簡單的接口,查詢數據庫中的信息
app.get('/getUser', (req, res) => {
	let sql = 'select * from test'
	conMysql(sql).then(result => {
		res.send(result)
	})
})
//根據前端傳過來的id查詢數據庫中對應的id的信息
app.get('/getUserInfo', (req, res) => {
	let sql = `select * from test where user = '${req.query.user}'`
	conMysql(sql).then(result => {
		let response = new Response(true, '獲取成功', 200, result)
		res.send(response)
	}).catch(err => {
		res.status(500).send('數據庫連接出錯!')
	})
})
 
//監聽node服務器的端口號
app.listen(3000, () => {
	console.log('恭喜你,服務器啟動成功')
})

貼一下我的目錄

如何使用vue+node作后端連接數據庫

 ok,到這里我們已經把前端的接口也寫完了

接下來我們處理跨域問題,為什么跨域了,因為前端一般用的本地端口是8080,我們剛剛寫的node服務器用的接口是3000,不同的端口就出現了跨域。

我們在根目錄下新建一個 vue.config.js 文件,一般用腳手架建立的vue項目都自帶這個文件

const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
  transpileDependencies: true,
})
 
module.exports = {
  devServer: {
    proxy: {
      '/api': {
        //target 我們要連接的后端地址
        target: 'http://localhost:3000',
        changeOrigin: true, //是否跨域
        pathRewrite: { '^/api': '' }
      },
    },
  },
}

ok,到這一步跨域也搞定了,接下來就是前后端交互了

4、前后端交互

在剛才寫的前端展示界面調用接口

<template>
	<div>
        <input v-model="user" placeholder="輸入用戶名查詢用戶信息">
		<button @click="getUser">點擊獲取用戶信息</button>
		<span>{{userInfo}}</span>
	</div>
</template>
 
<script>
//導入我們之前寫的接口
import { getUserInfo } from '@/axios/api'
export default {
	name: 'userInfor',
	data() {
		return {
			userInfo: '',
			user: '',
		}
	},
	methods: {
        
		async getUser() {
			let res = await getUserInfo({ user: this.user })
			console.log(res, '/api', '獲取的用戶信息')
			this.userInfo = res.data
		},
	},
	created() {
 
	}
}
</script>
 
<style>
</style>

啟動前端項目,啟動node服務,打開瀏覽器進入項目輸入數據庫中的任意一個user

如何使用vue+node作后端連接數據庫

如何使用vue+node作后端連接數據庫

關于“如何使用vue+node作后端連接數據庫”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“如何使用vue+node作后端連接數據庫”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

盱眙县| 涪陵区| 开江县| 灵山县| 蓝田县| 南川市| 绵竹市| 九台市| 阿巴嘎旗| 酒泉市| 北宁市| 涞源县| 绵阳市| 丹凤县| 肇东市| 合阳县| 通榆县| 渝中区| 昆明市| 江源县| 陈巴尔虎旗| 义乌市| 老河口市| 霍林郭勒市| 云林县| 桦甸市| 瑞金市| 铁力市| 射阳县| 平利县| 涟源市| 寻乌县| 濮阳县| 神木县| 安图县| 赞皇县| 海口市| 龙胜| 呼玛县| 新邵县| 抚顺县|