问题标签 [tedious]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2651 浏览

javascript - 节点/乏味未触发“完成”事件

我已经开始学习 Node 并且正在使用 Tedious 来连接和查询数据库。

我编写了一个模块,db它导出以下函数:

然后,我有一个标准server.js,我使用以下方法调用这些导出的函数:

运行时,数据库连接成功打开,执行简单查询并将其结果写入控制台(由dbOnRows处理程序)。

但是,dbOnDone处理程序永远不会被触发,因此连接永远不会关闭。

谁能解释为什么dbOnDone没有被触发?

0 投票
1 回答
1203 浏览

node.js - 无法连接到数据库 - EADDRNOTAVAIL

我有一个无法连接到 SQL Db 的简单 node.js 应用程序。

Web 服务器是 Azure Web App,运行 node.js 并使用Tedious for SQL。DB 是 Azure SQL 数据库。

这是详细的错误:

{ 消息:'无法连接到 xxx.database.windows.net:1433 - 未定义',代码:'ESOCKET' }

2016 年 1 月 14 日星期四 08:05:05 GMT+0000(协调世界时):无异常:ConnectionError:连接丢失 - 在连接处连接EADDRNOTAVAIL 。(D:\home\site\api\node_modules\tedious\lib\connection.js:797:26)在 Socket。(D:\home\site\api\node_modules\tedious\lib\connection.js:33:15) 在 Array.1 (net.js:301:14) 的 Socket.emit (events.js:88:20)在 EventEmitter._tickCallback (node.js:190:38)

它适用于我的机器,有趣的是它也适用于另一个 Azure Web 应用程序!我尝试重新启动此网络应用程序,但没有...此错误是什么意思?

0 投票
1 回答
953 浏览

node.js - Node/Hapi.js - 如何通过 hapi.js 从数据库中流式传输/追加结果集?

我正在尝试创建 REST 服务,该服务通过 hapi.js 从数据库返回数据作为响应。

我正在使用乏味的方法执行 SQL 查询,我想将结果格式化为 JSON 或 XML,并将它们作为 hapi 请求的响应返回。请注意,这不是单调乏味的,我可以在任何数据库中遇到相同的问题。Tedious 有一个回调,每次从结果集中接收到新行时都会调用该回调:

这是一列输出的最简单示例。fnOutput 是一个自定义函数,它接受应该返回的文本。它可以连接结果并将它们格式化为将返回给客户端的 JSON。

我正在逐行获取,我想将行中的值连接起来并通过 hapi 将它们返回给客户端。如何将部分结果连续发送到响应?

  1. 我不想连接此回调中的所有行,然后在查询完成时推送整个格式化的 JSON。我不知道我将拥有多少条记录,并且我想避免累积的大字符串。
  2. 如果我每次获得新行时都尝试在 fnOutput 中调用 reply(columns[0].value) ,那么当第二行返回时失败:“reply interface called two”

每次我在回调函数中获得新行时,是否有某种方法可以将此回调中的结果连续附加到 hapi.js 输出流?

0 投票
1 回答
891 浏览

javascript - 分配失败 - 处理大型 SQL 查询结果中的内存不足错误

我正在使用TediousRxJS针对 SQL Server 运行 SQL 查询并使用Observable. 这个函数定义了这个行为:

我有一个 SQL 查询,它返回要处理的 ~110k 记录,但在执行过程中出现此错误:

我不需要我曾经的所有结果,因此将结果分成单独的查询的解决方案会起作用,我只是不知道该怎么做。

0 投票
1 回答
5241 浏览

node.js - 查询 SQL NodeJS + 乏味:request.on('done', cb) 未被调用和嵌套查询

我正在尝试发出请求,将返回的数据添加到请求的“行”事件中的 cb 上的对象中,然后在“完成”cb 中执行某些操作。很简单;但是,“完成”事件显然没有被触发。这是我当前的代码:

此外,如果有人可以解释如何将查询的结果用作另一个查询的参数,那就太好了。在我调用 test 之后,obv 结果为空,但是当它在 request.on('row', cb) 中不为空时,我无法使用当前的 thisRow obj 在该 cb 中发出第二个请求。我需要使用交易吗?如果是这样,请举一个例子,说明如何在繁琐的事务中进行嵌套查询,其中第一个查询的结果作为参数馈送到第二个查询?谢谢。

0 投票
1 回答
1389 浏览

sql-server - request.on('row', function(columns) {}) 从未调用

我使用带有 Tedious 的 NodeJS 连接到 azure sql 数据库。我成功连接、插入和选择。但是,当我在“用户”表中插入一行时,我无法获取列的值。

代码在这里:

我调用这个函数:

从 Mac 上的终端请求

之后,数据被添加了,但是 res.json(result); 没有被调用。我收到这条消息:“curl:(52)来自服务器的空回复。”

我想获得插入用户的“user_id”。你知道有什么解决办法吗?

0 投票
1 回答
12687 浏览

sql-server - 使用 Tedious 和 Node JS 连接到本地 SQL Server 数据库失败

我正在尝试连接到本地计算机上的 SQL Server。我正在尝试使用乏味和乏味的ntlm。两者的配置如下:

当我处理繁琐的工作时,我收到了这个错误:

ConnectionError:无法连接到 .:1433 - getaddrinfo ENOTFOUND。.:1433]
消息:'无法连接到 .:1433 - getaddrinfo ENOTFOUND 。.:1433',代码:'ESOCKET'

当我使用“tedious-ntlm”时,我收到了这个错误:

连接到 .:1433 - 失败错误:getaddrinfo ENOTFOUND。.:1433

正如这里提到的,我尝试使用机器的 ip,即使我得到了同样的错误。

编辑:

当我根据@jmugz3 的建议修改如下配置时:

我收到错误:

错误:端口为 . 在 ServerName;DELL;InstanceName;MSSQLSERVER;IsClustered;No;Version;11.0.2100.60;tcp;1433;np;\DELL\pipe\sql\query;中找不到

谁能帮帮我吗?

提前致谢。

0 投票
1 回答
767 浏览

sql - 乏味的连接事件未在功能中触发

我正在尝试使用节点 js 中的繁琐连接到本地 SQL Server 数据库。

当我在声明后不久调用此函数时,它工作正常并打印“已连接到 SQL!”。但是当我调用 SocketIO.Server 的这个函数“连接”事件时,它没有进行 sql 调用。我的代码如下:

它只打印'a user connected'

有什么建议为什么会发生这种情况?

0 投票
2 回答
2149 浏览

sql-server - 无法将 Node.js 服务器连接到 Azure SQL 数据库

我在 Heroku 上运行一个简单的 Node.js 服务器。我已经设置了一个 Azure SQL 数据库,我只是试图从服务器建立到它的连接。我正在使用tedious.js进行连接。据我所知,我正在遵循文档中的模式,但连接没有通过。这是我拥有的代码(更改的用户名和密码)。目前,从我的浏览器向“/data”页面发出 GET 请求时会调用 connect 函数,但该页面永远不会加载,连接也永远不会通过。任何指针?

0 投票
3 回答
16143 浏览

sql-server - 如何将 node.js 日期转换为 SQL Server 兼容的日期时间?

我有一个使用expressTedious的 Web Api在 Azure SQL 数据库上存储一些数据。使用nvarchar类型和int类型它工作得很好,但是当我尝试保存DateTime值时,我收到一条错误消息:

错误:

RequestError:参数“RequisitionDate”的验证失败。日期无效。] 消息:“参数 \'RequisitionDate\' 的验证失败。” 无效日期。',代码:'EPARAM' }

嗯,有趣的是

是我在 node.js api 中执行的查询:

如果我直接在 SqlManager Studio 上执行查询,它工作正常。