📖Vue+node.js 简单获取Mysql 数据库的数据
前言
我的数据库是利用php study在本地搭建的
本地环境已经安装node.js 与 nodejs 中的mysql,http 扩展
Vue代码
- <template>
- <div id="Nodejs">
- <ul>
- <li v-for='nodetxt in textAry'>{{nodetxt.name}}</li>
- </ul>
- <button @click='sqlUP'>获取数据库信息</button>
- </div>
- </template>
- <script>
- const axios = require('axios');
- export default{
- name:"Nodejs",
- data(){
- return {
- NodeApi:'/user',
- textAry:[]
- };
- },methods:{
- sqlUP:function(){
- this.$axios.get('/Node'+this.NodeApi)
- .then(res => (
- this.textAry = res.data.data
- ))
- .catch(function(error){console.log('获取失败');});
- }
- }
- }
- </script>
- <style scoped>
- .table th{text-align: center;}
- </style>
Node.js 代码
- const express = require('express')
- const mysql = require('mysql')
- const cors = require('cors') // 跨域
- const bodyParser = require('body-parser') // 解析参数
- const app = express()
- const router = express.Router()
- //上面是引入各种模块
- app.all('*', function (req, res, next) {
- res.header('Access-Control-Allow-Origin', '*'); //设置允许跨域的域名,*代表允许任意域名跨域
- res.header('Access-Control-Allow-Headers', 'Content-Type, Content-Length, Authorization, Accept, X-Requested-With');//允许的header类型
- res.header('Access-Control-Allow-Methods', 'PUT, POST, GET, DELETE, OPTIONS'); //跨域允许的请求方式
- if (req.method == 'OPTIONS') {
- res.send(200);//让options尝试请求快速结束
- } else {
- next();
- }
- });
- let ApiProt = 9999;
- //启动项目,端口号为8000
- app.listen(ApiProt,()=>console.log('服务启动,请访问 http://localhost:'+ApiProt+'/user'))
- //数据库信息,密码一般,默认root,我是修改过
- const option = {
- host:'localhost',
- user:'Nodesql',
- password:'Nodesql',
- port:'3306',
- database:'Nodesql',
- connectTimeout:5000, // 连接超时
- multipleStatements:false // 是否允许一个query中包含多条sql语句
- }
- app.use(cors()) //解决跨域
- app.use(bodyParser.json()) //json请求
- app.use(bodyParser.urlencoded({extended:false})) // 表单请求
- //连接数据库
- const conn = mysql.createConnection(option)
- //all代表所有的请求方式(包括get/post) '/user' 给一个路径(自己定义) req代表发起请求(request) res代表接收请求(response)
- app.all('/user',(req,res)=>{
- // 选择user表 根据你自己的表名 用json的格式输出
- conn.query('SELECT * From websites',(e,r)=>res.json(new Result({data:r})))
- })
- app.all('/user_install',(req,res)=>{
- // 选择user表 根据你自己的表名 用json的格式输出
- conn.query('SELECT * From websites',(e,r)=>res.json(new Result({data:r})))
- })
- // 输出的内容
- function Result({code=1,msg='',data={}}){
- this.code = code;
- this.msg = msg;
- this.data = data
- }
跨域
由于不在同一接口所以会遇到跨域问题,我这里的解决方法是使用代理服务器,也就是我之前文章有写的
http-proxy-middleware 本地代理配置
- //config/index.js
- proxyTable: {
- '/Node':{//Node.js测试
- target:"http://localhost:9999",
- changeOrigin:true,
- pathRewrite:{
- '^/Node':'/'
- }
- }
- },
🧐发表评论