标签: node-mssql

Node.js和Microsoft SQL Server

有什么方法可以让我的Node.js应用程序与Microsoft SQL通信?我没有在野外看到任何MS SQL驱动程序?

我将一个非常简单的应用程序放在一起,需要能够与现有的MS SQL数据库进行通信(否则我会使用mongoDB或Redis)

sql-server node.js node-mssql tedious

69
推荐指数
7
解决办法
6万
查看次数

Node.js MSSQL tedius ConnectionError:无法连接到localhost:1433 - 连接ECONNREFUSED

我正在尝试使用带有mssql连接接口的NodeJS连接到MSSQL 2012 .

尝试连接时,我收到以下错误:

{ [ConnectionError: Failed to connect to localhost:1433 - connect ECONNREFUSED]
  name: 'ConnectionError',
  message: 'Failed to conncet to localhost:1433 - connect ECONNREFUSED',
  code: 'ESOCKET' }
Run Code Online (Sandbox Code Playgroud)

有想法该怎么解决这个吗?

sql-server node.js node-mssql tedious

44
推荐指数
6
解决办法
4万
查看次数

如何在Express 4 Web应用程序中的多个路由中使用单个mssql连接池?

我想在Node JS Express 4 Web应用程序中使用node-mssql作为MSSQL数据库连接器.路径处理程序逻辑在单独的文件中处理.

如何创建单个/全局连接池并在处理路由逻辑的多个文件中使用它?我不想在每个路由处理函数/文件中创建一个新的连接池.

sql-server node.js express node-mssql

25
推荐指数
4
解决办法
4万
查看次数

从Node.js连接到远程Microsoft SQL服务器

我想知道是否有人知道从Node.js连接到Microsoft SQL数据库的方法.我知道MySQL驱动程序,但我需要从MS SQL数据库中获取数据,而是直接从Node.js中提取数据而不是破解某种类型的PHP脚本.

node.js node-mssql

17
推荐指数
3
解决办法
2万
查看次数

从Linux机器上的nodejs使用Active Directory连接到Sql Server

我有一个在Linux机器上运行的nodejs服务。我需要连接到Sql Server(Mssql)。

我正在使用mssql程序包,但在与AD连接时看不到任何支持。

还有一个Azure Keyvault,我们可以通过调用以下命令与连接到计算机的MSI连接:

import * as msRestAzure from 'ms-rest-azure'
msRestAzure.loginWithVmMSI({ resource: this.azureKeyVaultResourceName })
Run Code Online (Sandbox Code Playgroud)

有没有办法使用我从loginWithVmMSI获得的凭据并连接到Sql Server?有没有一种方法可以直接用AD调用Sql Server?

是否有其他驱动程序对此提供支持?乏味还是nodemssql?

sql-server node.js azure-active-directory node-mssql

8
推荐指数
1
解决办法
427
查看次数

节点js:mssql [ConnectionError:Connection is closed.] name:'ConnectionError',message:'Connection is closed.',code:'ECONNCLOSED'

我在使用sqlserver 2012的npm mssql 3.0.0中收到错误

我正在创建单页应用程序,我使用express来使用restful.有4个方法执行查询并将数据返回到响应.对于每种方法,我打开连接并关闭连接.

但是当savedquery正在调用时,会发生连接关闭错误.

每个方法代码类似于savedquery方法(复制粘贴代码只有查询被更改)但是它们正在执行savedquery没有执行

{[ConnectionError:Connection is closed.] name:'ConnectionError',message:'Connection is closed.',code:'ECONNCLOSED'}

var savedquery=function(req,res){
       dbConfig= {
                user: 'XXX',
                password: 'XXXXXXXXXX',
                server: 'localhost', // You can use 'localhost\\instance' to connect to named instance 
                database: 'DEMO_ODS',       
                options: {
                    encrypt: true
                }
            };

        sql.connect(dbConfig).then(function (err) {
                var sqlrequest = new sql.Request();
                sqlrequest.query("SELECT * from SavedQuery").then(function (recordset) {
                    sql.close(function (value) {
                      console.log("connection6 closed");
                    });
                    return res.status(200).send(recordset);

                }).catch(function (err) {
                    console.log(err);
                });
            }).catch(function (err) { 
                console.log(err);
            });
        };
}
Run Code Online (Sandbox Code Playgroud)

express node-mssql

6
推荐指数
1
解决办法
7642
查看次数

Nodejs mssql中的SQL Server连接超时错误

执行几个 SQL 语句后总是出现以下错误。

我在用

var sql = require("mssql");
Run Code Online (Sandbox Code Playgroud)

(节点:12240)[DEP0064] 弃用警告:tls.createSecurePair() 已弃用。请改用 tls.Socket。warning.js:18(节点:12240)UnhandledPromiseRejectionWarning:未处理的承诺拒绝(拒绝ID:2):ConnectionError:无法连接到Server-100:15000ms内未定义 warning.js:18(节点:12240)[DEP0018] DeprecationWarning:未处理的承诺拒绝已被弃用。将来,未处理的 Promise 拒绝将会以非零退出代码终止 Node.js 进程。warning.js:18(节点:12240)UnhandledPromiseRejectionWarning:未处理的承诺拒绝(拒绝ID:4):ConnectionError:无法连接到Server-100:15000ms内未定义 warning.js:18

ConnectionError: Failed to connect to server-100:undefined in 15000ms
 at Connection.tedious.once.err (d:\API\node_modules\mssql\lib\tedious.js:216:17)
    at Object.onceWrapper (events.js:316:30)
    at emitOne (events.js:115:13)
    at Connection.emit (events.js:210:7)
    at Connection.connectTimeout (d:\API\node_modules\tedious\lib\connection.js:634:12)
    at ontimeout (timers.js:469:11)
    at tryOnTimeout (timers.js:304:5)
    at Timer.listOnTimeout (timers.js:264:5)
Run Code Online (Sandbox Code Playgroud)

以下是代码:

module.exports = function (data) {

    return new Promise(function (resolve, reject) {

        var database = new sql.ConnectionPool({
        user: 'sa',
        password: 'password',
        server: 'Server-100',
        database: 'SQLDB',
        options: {
            encrypt: true, …
Run Code Online (Sandbox Code Playgroud)

sql-server node.js node-mssql tedious sql-server-2016

6
推荐指数
1
解决办法
1万
查看次数

Node.js mssql 错误:乏味的弃用`config.options.enableArithAbort` 的默认值将从`false` 更改为`true`

我收到以下错误。我如何解决它?

tedious deprecated 在`tedious` 的下一个主要版本中`config.options.enableArithAbort` 的默认值将从`false` 更改为`true`。将值显式设置为“true”或“false”以使此消息静音。node_modules\mssql\lib\tedious\connection-pool.js:61:23

node.js node-mssql

6
推荐指数
1
解决办法
8734
查看次数

使用Node.js连接到Microsoft SQL Server 2008(MSSQL)数据库

可能重复:
从Node.js连接到远程Microsoft SQL服务器

我正在寻找有关如何使用Node.js连接到MS SQL Sever 2008的最新说明(v0.5.7)

我在GitHub上尝试了两个Node.js项目:

https://github.com/vivina/node-mssql

https://github.com/orenmazor/node-tds

node-tds是一个废弃的项目,node-mssql似乎不完整,或者至少代码库似乎与最新版本的Node.js已经过时了

有没有人实际上有Node.js连接和查询Microsoft SQL Server 2008?

我很想看到一些配置细节(版本,插件等)和代码示例.

谢谢,

P.

关于SO的过时答案: Node.js和Microsoft SQL Server,从Node.js连接到远程Microsoft SQL服务器

sql-server sql-server-2008 node.js node-mssql tedious

5
推荐指数
1
解决办法
1万
查看次数

NodeJS mssql来自不同用户的多个连接

我正在开发一个express基于应用程序,它可以对不同的(不同的用户!)SQL Server 2008和2014数据库进行一些查询.它是不同的,因为每个用户属于不同的公司,每个公司都有自己的SQL Server.我的应用程序使用自己的SQL Server来管理公司及其SQL Server连接字符串(我的应用程序可以访问其数据库服务器).我正在使用该mssql模块.

我没有找到关于"我应该为每个用户会话使用一个SQL Server连接还是为每个用户请求使用一个连接"的最佳实践.

来自.NET世界我们有一个规则:"一个查询/功能 - 一个连接".

首先,应用程序必须查询自己的应用程序数据库,以获取用户公司数据库的SQL Server连接字符串.然后,用户可以从他们公司的SQL Server(在我的应用程序中)中检索一些数据 - 比如getAccounts().这些函数中的每一个(每个函数 - 不是该函数中的每个请求!)打开一个新连接并在查询完成后关闭它:

let connection = new mssql.Connection(conStr, (err) => {     
  request.query(queryString, (err, result) => {
    if (err) 
      throw new Error('...');        
    resolve(result)
    connection.close();
  });
})
Run Code Online (Sandbox Code Playgroud)

据我了解,如果100个用户每个请求打开和关闭连接(假设每个用户同时只有一个请求),或者如果100个用户有100个打开的连接(每个用户一个),则不会产生(负面)差异整个会议.乍一看似乎我的方法资源不足,因为只有在需要时才打开连接(即每个请求几秒钟).

我错过了什么吗?如果200个用户同时访问我的应用程序怎么办 - 我会以某种方式遇到麻烦吗?

提前致谢!

[编辑]

据我所理解,

let connection = new mssql.Connection(...)
Run Code Online (Sandbox Code Playgroud)

将创建一个新的连接池,当我使用类似的东西时,它将打开一个新的连接

connection.connect()
Run Code Online (Sandbox Code Playgroud)

并关闭所有活动连接:

connection.close()
Run Code Online (Sandbox Code Playgroud)

所以我猜测我的场景中的最佳实践是为new mssql.Connection(..)每个活动用户创建一个连接池(),将其保存在某种会话存储中,然后在会话的整个生命周期中重用它.

这是一个好方法吗?

我只想避免一件事:用户因为无法创建连接而收到错误.

sql-server node.js node-mssql

5
推荐指数
0
解决办法
1600
查看次数