nodejs中mysql模块连接池pool问题

初学node,想用node写一个api,一直报这个错:

connection.query(db.sql.insert,[params.account, params.password],function(err, result){
                  ^

TypeError: Cannot read property 'query' of undefined

不知道是什么问题

代码如下:
api.js:

    const express = require('express');
    var router = express.Router();
    const mysql = require('mysql');
    var db = require('./db');
    
    var pool = mysql.createPool(db.config);
// 添加用户
router.get('/user/add',function(req, res, next){
    // 从连接池获取连接 
    pool.getConnection(function(err, connection){
        // 获取前台页面传过来的参数 
        var params = req.query || req.params;
        console.log(params);
        connection.query(db.sql.insert,[params.account, params.password],function(err, result){
            if(result){
                result={
                    code:200,
                    msg:'add success!'
                }
            }
            console.log('add');
            //以json形式把操作结果返回前台页面
            returnResponse(res, result);
            connection.release();
        });
    })
})

db.js:

module.exports={
    config: {
        host:'localhost',
        user:'root',
        password:'123',
        database:'blog'
    },
    sql: {
        insert:'INSERT INTO blog (account,password) VALUES (?,?);'
    }
}
阅读 6.7k
1 个回答

它说 connection 是未定义的,所以你可能没获取到连接,你把 pool.getConnection 回调里的 err 判空然后打出来看一下。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题