我目前正在Youtube上学习一个关于nodejs和mssq的教程。在学习教程的过程中,我遇到了一个关于ConnectionPool的问题。由于这是一个有5年历史的视频,nodejs插件会随着时间的推移而改变(mssq/temploy(。
我的版本现在是6.2.0的mssql/乏味(最新版本(
它不再使用"sql.Connection(config("。许多人报告说,正在更改sql。到sql的连接(config(。ConnectionPool(config(修复了它们的问题。
但对我来说,事实并非如此。
下面你会发现3个文件,但让它变得糟糕的是这一行(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:_ProgrammingWorkInventoryCegepdatabaseconnect.js:7:14)
at Object.exports.getList (C:_ProgrammingWorkInventoryCegepdatabasequeriesvilles.js:5:11)
at C:_ProgrammingWorkInventoryCegeproutesvilles.routes.js:6:10
at Layer.handle [as handle_request] (C:_ProgrammingWorkInventoryCegepnode_modulesexpresslibrouterlayer.js:95:5)
at next (C:_ProgrammingWorkInventoryCegepnode_modulesexpresslibrouterroute.js:137:13)
at Route.dispatch (C:_ProgrammingWorkInventoryCegepnode_modulesexpresslibrouterroute.js:112:3)
at Layer.handle [as handle_request] (C:_ProgrammingWorkInventoryCegepnode_modulesexpresslibrouterlayer.js:95:5)
at C:_ProgrammingWorkInventoryCegepnode_modulesexpresslibrouterindex.js:281:22
at Function.process_params (C:_ProgrammingWorkInventoryCegepnode_modulesexpresslibrouterindex.js:335:12)
at next (C:_ProgrammingWorkInventoryCegepnode_modulesexpresslibrouterindex.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);
};
问题就在这里:
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);
};