【问题标题】:Node express app calling mssql is saying that Connection is closed调用 mssql 的节点快速应用程序说连接已关闭
【发布时间】:2017-05-23 02:22:15
【问题描述】:

我有另一个使用快递和路线的应用程序,但这个新应用程序我正在精简它。我知道连接字符串的东西是正确的

script.getQuestions(connection);

script.getQuestions = function(connection,req, res){
   console.log(connection);
}

我读到有人在网上说要更改为使用异步承诺来修复此问题...问题是我的函数具有 reqres 我不知道如何传递这些甚至尝试用承诺重构

“连接错误:连接已关闭”

"(module.js:487:32) 代码:'ECONNCLOSED',名称:'ConnectionError'}"

我调用的(脚本)是

var sql = require('mssql');

exports.getQuestions = function(connection, req,res){
 console.log(connection);
var request = new sql.Request(connection);

var query = 'select * from Question'
request.query(query).then(function(resultset){
    res.json(resultset.recordset);
}).catch(function(err){
    console.log(err);
    //res.json(err)
})
}

【问题讨论】:

  • problem is that with my function having req and res i don't .... 你不知道吗?说完一句话?哪一行代码发出了这个错误?
  • 已修复,req 和 res 在我的 promise 重构中不起作用.. 我从 sql server 执行中得到错误

标签: javascript sql-server node.js express promise


【解决方案1】:

有点难以理解你在那里做什么。但这是一个使用mssql的承诺示例

const sql = require('mssql')

sql.connect(config).then(pool => {
    // Query 

    return pool.request()
    .input('input_parameter', sql.Int, value)
    .query('select * from mytable where id = @input_parameter')
}).then(result => {
    console.dir(result)

    // Stored procedure 

    return pool.request()
    .input('input_parameter', sql.Int, value)
    .output('output_parameter', sql.VarChar(50))
    .execute('procedure_name')
}).then(result => {
    console.dir(result)
}).catch(err => {
    // ... error checks 
})

sql.on('error', err => {
    // ... error handler 
})

来源:https://www.npmjs.com/package/mssql#promises

【讨论】:

    猜你喜欢
    • 2020-05-15
    • 2019-10-23
    • 2021-11-10
    • 1970-01-01
    • 2022-01-26
    • 1970-01-01
    • 2018-12-20
    • 1970-01-01
    • 2019-06-19
    相关资源
    最近更新 更多