节点抛出 TypeError:SQL Server 连接字符串的无效 URL

问题描述 投票:0回答:0

当我尝试在节点 REPL (Node.js v 18.4.1) 上运行它时,我得到了提到的错误:

new URL('sqlserver://localhost:1433;database=mydb;user=sa;password=mySpiffyPassword;trustServerCertificate=true')

奇怪的是,如果我在密码末尾添加

@
mySpiffyPassword@
),它不会出错。 (虽然这不是我的数据库密码,所以显然永远不会这样做。)

背景:我碰巧试图在使用 Prisma 的应用程序中使用连接字符串,所以我在节点 REPL 中尝试了这个,效果很好:

new URL('sqlserver://localhost:1433;database=mydb;user=sa;password=r@ndomP@$$w0rd;trustServerCertificate=true')

网址来自here.

我将

r@ndomP@$$w0rd
值慢慢地推向
mySpiffyPassword
并将其缩小到
@
字符产生差异。这让我在 Node 文档中找到了this,其中也提到了
@
字符。

我试过

new URL('sqlserver://sa:mySpiffyPassword@localhost:1433;database=mydb;trustServerCertificate=true')

但这也引发了无效的 URL 错误。

我知道连接字符串是有效的(或至少是正确的),因为我能够使用它运行

npx prisma pull
并且工作得很好; Prisma 连接并填充了我的
schema.prisma
文件,其中包含我数据库中的所有表。 Prisma 与问题无关 - 只是提到它是因为它证明了 URL 是有效的 - 只是不是为了让 Node 的
new URL()
对此感到满意。

node.js sql-server url
© www.soinside.com 2019 - 2024. All rights reserved.