1.目录结构:

node.js接口案列 node.js写接口_json

2.安装相应的插件:

npm i body-parser express mysql

3.app.js代码

const express = require('express');
const app = express();

// 引入第三方插件
const bodyParser = require('body-parser');

// 引入自己写的API接口
const apiUser = require('./routers/user')

// 使用第三方插件
app.use(bodyParser.json());                             // 当post请求时,里面的参数可以通过req.body()获取一个对象
app.use(bodyParser.urlencoded({ extended: false }));

// 使用API接口
app.use(apiUser);

app.listen(3000,()=>{
    console.log("启动服务: http://127.0.0.1:3000")
});

4.sql/pool.js代码

var mysql = require('mysql');

// 配置信息
const options = {                   
    host            : 'localhost',
    user            : 'root',
    password        : '123456',
    database        : 'hp_my_blog',
    port            : '3306',
    connectTimeout  : 5000,         // 连接超时时间
    multipleStatements : false,     // 是否允许一个query语句里面包含多条sql语句
    connectionLimit : 100,          // 链接数限制
    queueLimit      : 0,            // 最大连接等待数(0为无限制) 
}
// 连接数据库
var pool  = mysql.createPool(options);
 
// 监听当数据库失去连接的时候重新连接
pool.on('error',err=>{
    console.log("数据库错误,重新连接中.....");
    err.code === 'PROTOCOL_CONNECTION_LOST' && setTimeout(reConnectPool);
});

// 重连数据库
function reConnectPool() {
    pool = mysql.createPool(options);
}

// 重构查询
pool.hp_query = function(sql,callBack){
    pool.getConnection((err,conn)=>{
        conn.query(sql,(err,data)=>{
            callBack(err,data);
        })
        conn.release();
    });
}


module.exports = pool;

5.router/user.js

const epxress = require('express');
const pool = require('../sql/pool');
const router = epxress.Router();

router.get('/user',(res,req,next)=>{
    pool.hp_query("select * from user",(err,data)=>{
        if(err) next(err)
        req.json(data);
    })
})

// 当调用api出现错误时,统一到这里处理;
router.use((err,req,res,next)=>{
    if(err) {
        res.status(500).json(err); 
    }
})


module.exports = router;

查询效果

node.js接口案列 node.js写接口_sql_02