Advertisement

express从mysql数据库获取数据

阅读量:

1、首先npm install mysql --save安装mysql

2、在server文件夹下新建config文件夹,config中新建db.js文件,代码如下:

复制代码
 // 创建数据库连接

    
 const mysql = require("mysql")
    
 const connection = mysql.createConnection({
    
     host: "101.132.36.129",
    
     port: 3306,
    
     user: "root",
    
     password: "123456",
    
     database: "websql"
    
 })
    
 connection.connect((err) => {
    
     if (err) { console.log("连接失败") }
    
     else { console.log("连接成功") }
    
 })
    
  
    
 let query=(sql, callback)=>{
    
     connection.query(sql, function (err, rows) {
    
     callback(err, rows);
    
     });
    
     // connection.end();//end()的话好像就只能连接一次的样子
    
 }
    
  
    
 // 创建连接池,连接池和创建数据库连接的区别目前还没搞懂
    
 // const pool=mysql.createPool({
    
 //     host:"101.132.36.129",
    
 //     port:3306,
    
 //     user:"root",
    
 //     password:"123456",
    
 //     database:"sentence"
    
 // });
    
  
    
 // let query=(sql,callback)=>{
    
 //     pool.getConnection((err,connection)=>{
    
 //         console.log(connection)
    
 //         connection.query(sql,(err,rows)=>{
    
 //             callback(err,rows);
    
 //             connection.release()
    
 //         })
    
 //     })
    
 // }
    
  
    
 exports.query = query

3、然后在routes文件夹下写接口,我就写在index.js文件中吧,代码如下:

复制代码
 var express = require('express');

    
 var router = express.Router();
    
  
    
 let db=require("../config/db")
    
  
    
 /* GET home page. */
    
 router.get('/', function(req, res, next) {
    
   res.render('index', { title: 'Express' });
    
 });
    
  
    
 router.get('/first',(req,res,next)=>{
    
   let sql="select * from sentence"
    
   db.query(sql,(err,rows)=>{
    
     if(err){
    
       res.json({err:"chucuole"})
    
     }
    
     else{
    
       res.json({list:rows})
    
     }
    
   })
    
 })
    
  
    
 module.exports = router;

这里写了一个/first接口来获取sentence表里面的所有数据。

在前端请求接口就可以得到数据了

复制代码
 this.$axios.get("http://localhost:3000/first").then(res => {

    
   this.msg = res.data.list;
    
   console.log(this.msg);
    
 });

this.msg就是一个包含所有数据的数组。

给自己的忠告:1、必须准确无误地记录数据库相关信息以避免报错例如将"数据库"相关的属性名称正确区分避免将其误认为是"表名"导致系统报错。2、在选择使用方法时要特别注意不要将连接池的技术或工具用于建立数据库连接而是应根据实际需求合理选择适合的操作流程切勿盲目照搬网上的代码片段而是应当通过深入学习理解后再进行独立编写避免因简单复制粘贴而导致潜在的问题出现。

全部评论 (0)

还没有任何评论哟~