Прежде всего, позвольте мне сказать, что я относительно новичок в javascript, и этот код предназначен для того, чтобы попытаться изучить что-то новое, поэтому не стесняйтесь комментировать что-либо, даже если это не конкретный вопрос, который я задаю.
В настоящее время я пытаюсь централизовать свой код для доступа к моей базе данных MySQL на моем сервере Express js и хотел использовать обещания.Это то, что я пытался:
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
действительно функция.Что может быть причиной этого?