Ms sql / nodejs ConnectionPool не является конструктором - PullRequest
0 голосов
/ 28 апреля 2020

В настоящее время я следую учебнику на Youtube по поводу nodejs и mssq. Следуя инструкции, я столкнулся с проблемой подключения к сети. Поскольку видео 5 лет назад, плагин nodejs изменился сверхурочно (mssq / tedious).

Моя версия сейчас 6.2.0 для mssql / tedious (последняя версия)

Это не так используя "sql .Connection (config)" больше. Многие люди сообщали, что изменение sql .Connection (config) на sql .ConnectionPool (config) решило их проблемы.

, но для меня это не так.

Ниже вы найти 3 файла, но строка, которая делает его go плохим, - вот этот (connect. js):

var conn = new sql.ConnectionPool(config);

конфигурация на самом деле такая:

exports.config = {
  user: 'dataGetter',
  password: '1234',
  server: 'localhost',
  database: 'cegeptest',
};

Ошибки:

TypeError: sql.ConnectionPool is not a constructor
    at Object.exports.connectDatabase (C:\_Programming\Work\InventoryCegep\database\connect.js:7:14)
    at Object.exports.getList (C:\_Programming\Work\InventoryCegep\database\queries\villes.js:5:11)
    at C:\_Programming\Work\InventoryCegep\routes\villes.routes.js:6:10
    at Layer.handle [as handle_request] (C:\_Programming\Work\InventoryCegep\node_modules\express\lib\router\layer.js:95:5)
    at next (C:\_Programming\Work\InventoryCegep\node_modules\express\lib\router\route.js:137:13)
    at Route.dispatch (C:\_Programming\Work\InventoryCegep\node_modules\express\lib\router\route.js:112:3)
    at Layer.handle [as handle_request] (C:\_Programming\Work\InventoryCegep\node_modules\express\lib\router\layer.js:95:5)
    at C:\_Programming\Work\InventoryCegep\node_modules\express\lib\router\index.js:281:22
    at Function.process_params (C:\_Programming\Work\InventoryCegep\node_modules\express\lib\router\index.js:335:12)
    at next (C:\_Programming\Work\InventoryCegep\node_modules\express\lib\router\index.js:275:10)

Заранее спасибо за помощь:)

Вот код, связанный с этим:

villes.routes. js

const router = require('express').Router();
const villes = require('../database/queries/villes.js');

router.get('/', (req, res) => {
  //database.getList(req, res);
  villes.getList(req, res);
  res.render('villes');
});

module.exports = router;

villes. js

var connect = require('../connect');
//CRUD pour villes

exports.getList = function (req, res) {
  connect.connectDatabase('SELECT * FROM Ville', function (data, err) {
    if (err) {
      res.writeHeader(500, 'Internal error occured', {
        'Content-Type': 'text/html',
      });
      res.write(
        '<html><head><title>500</title></head><body>500: internal error. Details: ' +
          err +
          '</body></html>'
      );
    } else {
      res.writeHeader(200, { 'Content-type': 'application/json' });
      res.write(JSON.stringify(data));
    }
    res.end();
  });
}; //sortir la liste complète des villes

connect. js

var sql = require('mssql'); //On call le module microsoft Sql   (Installer avec :  npm i mssql)
var config = require('../settings').config; //On va chercher notre configuration exportée dans database/config.js

//sql.connect(config).then((pool) => {});

exports.connectDatabase = function (sql, callback) {
  var conn = new sql.ConnectionPool(config);
  console.log(conn);

};

1 Ответ

0 голосов
/ 28 апреля 2020

Проблема здесь:

var sql = require('mssql'); //On call le module microsoft Sql   (Installer avec :  npm i mssql)
var config = require('../settings').config; //On va chercher notre configuration exportée dans database/config.js

//sql.connect(config).then((pool) => {});

exports.connectDatabase = function (sql, callback) {
  var conn = new sql.ConnectionPool(config);
  console.log(conn);

};

Функциональный параметр sql перекрывает фактический sql модуль. Переименуйте его в sqlText, и он будет работать.

exports.connectDatabase = function (sqlText, callback) {
  var conn = new sql.ConnectionPool(config);
  console.log(conn);

};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...