pool.query 不是函数 - 使用 npm mysql 包使用连接池

R3u*_*3uK 3 javascript mysql node.js express

我正在使用npm mysql 包,使用以下命令创建到我的数据库的连接池dbHandler.js

var mysql = require("mysql");

var pool = mysql.createPool({
    connectionLimit : 10,
    host: "path.to.host",
    user: "username",
    password: "password",
    database: "dbname",
    debug: false
});

exports.pool = pool;
Run Code Online (Sandbox Code Playgroud)

然后我在里面调用它routesHandler.js来处理我的 SQL 请求:

var mysql = require("mysql");
var pool = require("./dbHandler");

exports.login = function(req, res) {
    var email = req.body.email;
    pool.query('SELECT * FROM users WHERE users.email = ?', [email], function(
        error,
        results,
        fields
    ) {
        if (error) {
            res.send({
                code: 400,
                failed: "Error ocurred"
            });
        } else {
            if (results.length > 0) {
                //Mail authorized
                res.send({
                    code: 200,
                    success: "Sucessfull login"
                });
            } else {
                //Mail unauthorized
                res.send({
                    code: 403,
                    failed: "Unauthorized mail"
                });
            }
        }
    });
};
Run Code Online (Sandbox Code Playgroud)

我不确定这是最好的方法,但我似乎找不到合适的例子......:/
我很乐意:)接受有关处理整个问题的任何建议或链接:

  • 与数据库的连接 +
  • 对数据库的 SQL 请求

但是我收到了基本的错误消息,但我不知道如何摆脱它:

类型错误:pool.query 不是函数

欢迎任何指点!

Ami*_*ner 8

你这样做exports.pool = pool;,所以你必须像这样调用池属性var pool = require("./dbHandler");

如果您module.exports=pool在您dbHandler的代码中使用,那么您的代码将按原样工作。

如果不只是使用我的答案:

var pool = require("./dbHandler").pool;

exports.login = function(req, res) {
    var email = req.body.email;
    pool.query('SELECT * FROM users WHERE users.email = ?', [email], function(
        error,
        results,
        fields
    ) {
        if (error) {
            res.send({
                code: 400,
                failed: "Error ocurred"
            });
        } else {
            if (results.length > 0) {
                //Mail authorized
                res.send({
                    code: 200,
                    success: "Sucessfull login"
                });
            } else {
                //Mail unauthorized
                res.send({
                    code: 403,
                    failed: "Unauthorized mail"
                });
            }
        }
    });
};
Run Code Online (Sandbox Code Playgroud)