美文网首页
express node 查询 mysql

express node 查询 mysql

作者: 赵伟敏_19 | 来源:发表于2018-11-09 17:14 被阅读0次

项目准备 使用express node 创建一个server服务


1. 安装mysql模块

npm install mysql --save

2.在项目下创建DB文件夹

创建db_config.js 配置连接mysql目录

/**

* Created by sprint on 16/8/13.

*/

// DB数据库配置文件

'use strict';

module.exports = {

    mysql: {

        host: '127.0.0.1', // mysql服务器地址

        user: 'root', // 数据库用户名

        password: '123456', // 数据库密码

        database:'shop', // 用户端数据库

        port: 3306 // 端口

    }

};

3. 在router中使用

在app.js中创建了一个product router

var productRouter = require('./routes/product');

app.use('/product', productRouter);

4. product.js 

var express = require('express');

var router = express.Router();

var URL = require('url');

// 获取url参数 依赖于url模块 使用前需要使用  require('url')

// 导入MySQL模块

var mysql = require('mysql');

var dbConfig = require('../db/db_config');

// 定义SQL语句

var SQL = { 

  insert: "INSERT INTO `product`(`name`,`img`,`price`,`desc`,`link`) VALUES(?,?,?,?,?)",

  queryAll: 'SELECT * FROM product',

  queryPage: 'SELECT * FROM product LIMIT ?, ?',

  getById: 'SELECT * FROM product WHERE id = ? ',

  updata: 'UPDATE product SET name = ? WHERE id = ?' 

};

// 使用DBConfig.js的配置信息创建一个MySQL连接池

var pool = mysql.createPool( dbConfig.mysql )

// 响应一个JSON数据

var responseJSON = function (res, ret) {

  if(typeof ret === 'undefined') {

      res.json({code:'-200', msg: '操作失败'});

  } else {

    res.json(ret);

  }

};

// 添加

router.post('/add', function(req, res, next){

  // 从连接池获取连接

  pool.getConnection(function(err, connection){

    // 获取前台页面传过来的参数 

    var param = req.body;

    /*

    * name,img,price,desc,link 参数

    */

    // 建立连接 增加一个用户信息

    connection.query(SQL.insert, [param.name, param.img, param.price, param.desc, param.link], function(err, result) {

      if(result) {     

        result = { 

          code: 200, 

          msg:'增加成功'

        }; 

        responseJSON(res, result); 

      }else{

        responseJSON(res, err); 

      }

      // 释放连接 

      connection.release(); 

    })

  })

})

router.get('/list', function(req, res, next){

  pool.getConnection(function(err, connection){

    var param = URL.parse(req.url, true).query;

    let x = parseInt(param.page_size) * (parseInt(param.page_no) - 1);

    let y = parseInt(param.page_size);

    connection.query(SQL.queryPage, [x, y], function(err, result){

      if(result){

        dataRes = {

          code: 200, 

          info: result

        }

        responseJSON(res, dataRes);

        connection.release();

      }else{

        responseJSON(res, err);

        connection.release();

      }

    })

  })

})

router.get('/getInfo', function(req, res, next){

  pool.getConnection(function(err, connection){

    var param = URL.parse(req.url, true).query;

    connection.query(SQL.getById, [param.id], function(err, result){

      if(result){

        dataRes = {

          code: 200, 

          info: result

        }

        responseJSON(res, dataRes);

        connection.release();

      }else{

        responseJSON(res, err);

        connection.release();

      }

    })

  })

})

router.put('/updata', function(req, res, next){

  pool.getConnection(function(err, connection){

    var param = URL.parse(req.url, true).query;

    connection.query(SQL.getById, [param.id], function(err, result){

      if(result){

        dataRes = {

          code: 200, 

          info: result

        }

        responseJSON(res, dataRes);

        connection.release();

      }else{

        responseJSON(res, err);

        connection.release();

      }

    })

  })

})

module.exports = router;

5. 启动

npm start

相关文章

网友评论

      本文标题:express node 查询 mysql

      本文链接:https://www.haomeiwen.com/subject/dyvoxqtx.html