不是问题,更多的是提醒,以防其他人遇到这种情况 - 在设置新节点项目时,我想使用 knex 访问 MSSQL 数据库服务器。 我正在用这个初始化knex:
{
client: 'mssql',
connection: {
driver: 'msnodesqlv8',
server: 'localhost',
database:'testdb'
options: {
trustedConnection: true
}
}
我收到错误:"类型错误:_this.driver.Connection 不是构造函数"。 经过大量的谷歌搜索,我找不到任何带有此错误消息的内容,所以我想我会在这里发布一个提示。
我安装了最新的knex,mssql和msnodesqlv8软件包。 这就是问题所在。 从mssql v4.x开始,knex和mssql(目前(玩得并不好。 我能够通过将 mssql 包降级到 3.3 来解决此问题。
答案与问题末尾所述完全相同。
"我安装了最新的knex,mssql和msnodesqlv8软件包。这就是问题所在。从mssql v4.x开始,knex和mssql(目前(玩得并不好。我能够通过将 mssql 包降级到 3.3 来解决此问题。
我也能够使用此解决方案成功解决问题。
我在 TypeScript 项目中遇到了同样的问题,最终的罪魁祸首是我在项目中添加了一个文件夹,该文件夹与 Knex 客户端的官方 npm 包同名。例如,我正在使用client : "pg"
这意味着它在内部执行了一个 require("pg"( 来加载该客户端。
我的项目结构是这样的:
/app/
node_modules/
src/
pg/
index.ts -> my personal pg connector library
... other folders and files
package.json
tsconfig.json
罪魁祸首是我的/app/tsconfig.json
有不当baseUrl
。我使用了"baseUrl" : "./src"
这意味着它是在/app/src
中搜索pg
并找到我自己的图书馆,而不是像人们期望的那样在/app/node_modules
中查找。将baseUrl
更改为./
后,错误消失了。