首先,让我说我对javascript还是比较陌生,这段代码旨在尝试学习新知识,因此即使不是我要问的具体问题,也可以随时评论。
>我目前正在尝试集中我的代码以访问我的Express js服务器中的MySQL数据库,并希望利用Promise。这是我尝试过的:
let mysql = require('mysql');
var connectionPool = mysql.createPool({
host: 'localhost',
user: 'user',
password: 'password',
database: 'database',
connectionLimit: 10
});
function getConnection() {
return new Promise(afterConnecting => {
connectionPool.getConnection((err, connection) => {
if (err) throw err;
return afterConnecting(connection);
});
});
}
function queryConnection(connection, queryString) {
return new Promise(consumeRows => {
connection.query(queryString, function (err, rows) {
connection.release();
if (err) throw err;
return consumeRows(rows);
});
});
}
exports.requests = {
getAllEmployees: function () {
const queryString = 'SELECT id, name FROM employees;
return getConnection()
.then(connection => {
return queryConnection(connection, queryString);
});
}
};
我正尝试这样拨打getAllEmployees()
:
var express = require('express');
var router = express.Router();
var db = require('../database');
router.get('/', function (req, res) {
db.getAllEmployees()
.then(rows => {
res.setHeader('Content-Type', 'application/json');
res.send(JSON.stringify(rows));
});
});
module.exports = router;
我的问题是,我收到一个TypeError,指出“ db.getAllEmployees不是函数”。调试时,VS Code声称db.getAllEmployees
确实是一个函数。可能是什么原因造成的?
答案 0 :(得分:2)
您将其导出为emailDomain.validateEmailDomai
,因此必须将其用作:
exports.requests.getAllEmployees