首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nodejs mssql全局连接

Nodejs mssql全局连接
EN

Stack Overflow用户
提问于 2018-09-20 22:47:12
回答 2查看 4.3K关注 0票数 2

我使用nodejs连接到Server。但是,我未能创建一个在所有查询之间共享的全局连接。在文档中,查询都封装在连接回调函数中,这意味着每次我进行查询时,都必须建立一个连接。

是否有一种方法使单个连接保持活动,以便与所有控制器共享它?我在mongodb上做过,不知道Server是如何做到这一点的。

我做了这样的事

connection.js

代码语言:javascript
复制
const config = require('./config')
const sql = require('mssql')
const pool = sql.ConnectionPool(config).connect(function(err){
    if(err) throw err;
    console.log("connected");
});
module.exports = {
    sql, pool
}

server.js

代码语言:javascript
复制
const conn = require('./connection.js')
const requst = new conn.sql.Request(conn.pool)
request.query('select * from table', function (err, recordset){
    if(err) console.log(err);
    console.log(recordset);
});

它失败了,因为连接已关闭。

请分享你的一些见解,谢谢

EN

回答 2

Stack Overflow用户

发布于 2018-09-21 07:02:26

我在我的一个项目中使用了MSSQL,在全局运行它--这就是我所做的。

server.js

代码语言:javascript
复制
const sql = require('mssql');
const config = require('./config');
sql.connect(config, (err) => {
if (err) return console.error(err);
  console.log("SQL DATABASE CONNECTED");
});

SomeControllerFile

代码语言:javascript
复制
const sql = require('mssql');
const request = new sql.Request();
request.multiple = true;

request.query('select * from table') => {
  if(err){
    return console.error(err);
  }
  return res.send(recordset)
});

希望这能有所帮助。

票数 2
EN

Stack Overflow用户

发布于 2019-07-30 19:16:18

第一种方法可以正常工作,但您必须考虑connect()的异步特性。正在发生的事情是,连接被调用,变量被导出,然后你去使用它--它没有完成连接。我推荐这样的解决办法:

代码语言:javascript
复制
const conn = require('./connection.js'); 
queryDatabase(conn.pool); 

async function queryDatabase(pool_connection){
    let pool = await pool_connection; 
    let request = new conn.sql.Request(pool); 
    request.query('select * from table', function (err, recordset){
         if(err) console.log(err);
         console.log(recordset);
    });
} 

在你的服务器js里。您可以等待连接器文件中的连接,但这就违背了具有非阻塞异步功能的目的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52434352

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档