从 Node.js 发送到 mssql 的 varchar 有多大限制?

问题描述

我创建了一个 JS/JQuery UI,它连接到 Node.js 服务,该服务在将数据持久化到 MS sql Server 数据库之前处理数据。

该应用程序运行良好,但用户需要在评论字段中留出更多空间。我把它当作 varchar(512),所以我把它增加到 varchar(8000)(在我公司运行的 sql Server 版本中 varchar 的最大值)。当我在评论字段中提交超过约 3700 个字符的表单时,与数据库服务器的连接将重置并显示如下错误

但是,如果我从服务器日志中复制 sql 语句并将其粘贴到 MS sql Server Management Studio 中,该语句将按预期执行且没有错误,这就是为什么我开始认为它是一个 Node.js “mssql " 模块问题。

现在我要将字段的表单验证设置为 3500 个字符,但不受模块限制会很好。

events.js:180
      throw er; // Unhandled 'error' event
      ^
ConnectionError: Connection lost - read ECONNRESET
    at ConnectionError (C:\Users\fw278e\Documents\GitRepo\lm_itar\node_modules\tedious\lib\errors.js:12:12)
    at Connection.socketError (C:\Users\fw278e\Documents\GitRepo\lm_itar\node_modules\tedious\lib\connection.js:688:28)
    at Socket.emit (events.js:208:15)
    at Socket.EventEmitter.emit (domain.js:476:20)
    at emitErrorNT (internal/streams/destroy.js:91:8)
    at emitErrorAndCloseNT (internal/streams/destroy.js:59:3)
    at processticksAndRejections (internal/process/task_queues.js:77:11)
Emitted 'error' event at:
    at Connection.<anonymous> (C:\Users\fw278e\Documents\GitRepo\lm_itar\node_modules\mssql\lib\tedious.js:328:30)
    at Connection.emit (events.js:203:13)
    at Connection.EventEmitter.emit (domain.js:476:20)
    at Connection.socketError (C:\Users\fw278e\Documents\GitRepo\lm_itar\node_modules\tedious\lib\connection.js:688:14)
    at Socket.emit (events.js:208:15)
    [... lines matching original stack trace ...]
    at processticksAndRejections (internal/process/task_queues.js:77:11) {
  message: 'Connection lost - read ECONNRESET',code: 'ESOCKET'
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)