[英]Request Error: No connection is specified for that request; while connecting to Sql server using express.js?
我正在使用最新版本的 node、express 和 mssql 模块。 我正在尝试使用 express.js 连接到 sql server 2014 的本地实例。
我正在使用官方文档中的 mssql 模块和回调机制。
我试过了:
const express= require('express');
const app= express();
const mssql= require('mssql');
app.get('/', (req, res) =>
{
const configuration=
{
name: "default",
host: 'localhost',
database: 'HimHer',
user: '',
password: '',
port: 1433
}
new mssql.connect(configuration, error =>
{
new mssql.Request().query('Select * from Users', (err, dataset) =>
{
if(err)
{
console.log(err);
res.send(err);
return;
}
else
{
console.dir(dataset);
res.send(JSON.stringify(dataset));
return;
}
});
});
mssql.close();
mssql.on('error', err =>
{
console.log(err);
});
});
app.listen(5000, () =>
{
console.log('Listening to requests on port 5000');
})
我希望它连接到数据库。
我认为,您在创建之前关闭了连接。 将关闭连接命令移到 res.send(...) 行旁边。 然后尝试连接,等待连接,然后运行选择,等待结果,收到结果后将答案发送给客户端,并关闭连接。
看这个例子:
let x = setTimeout(function(){
console.log('async function called');
}, 1000);
clearTimeout(x);
看看这个:
let x = setTimeout(function(){
console.log('async function called');
clearTimeout(x);
}, 1000);
第二个代码会记录,但第一个不会。
sql.Request.query() 需要特定的数据库名称。
您需要在 Request.query() 调用中指定要在其中查询的数据库。
添加use HimHer;
在选择语句之前。
new mssql.connect(configuration, error =>
{
new mssql.Request().query('use HimHer; Select * from Users', (err, dataset) =>
{
if(err)
{
console.log(err);
res.send(err);
return;
}
else
{
console.dir(dataset);
res.send(JSON.stringify(dataset));
return;
}
});
});
作为一个新的 javascript 开发者,我已经可以告诉你你应该写
const app = express.Router();
代替
const app = express();
当你想使用 get、post、delete 等方法时。 你必须告诉你的应用程序根据情况遵循哪种方式。 我已经尝试过不使用 express.Router() 并且我的应用程序每次都崩溃。 但我不知道它是否能解决你的问题,如果我说了什么不好/错的话,我道歉,我还在学习英语 ^^。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.