[英]Unable to connect to Microsoft SQL Server using Node.js,mssql and express
I am trying to learn Node.js and created a simple project to query the local database.我正在尝试学习 Node.js 并创建了一个简单的项目来查询本地数据库。 But I get failed to look up an instance error message.
但是我无法查找实例错误消息。
I have checked that the SQL Server services running in services.msc我检查了在 services.msc 中运行的 SQL Server 服务
I have verified TCP/IP is enabled我已验证 TCP/IP 已启用
I have tried with the username and password and without it as well.我试过使用用户名和密码,也试过不使用它。 I connect to localdb in SQL Server Management Studio as
(localdb)\\v11.0
and below is the screenshot of the properties我在 SQL Server Management Studio 中以
(localdb)\\v11.0
连接到 localdb,以下是属性的屏幕截图
What am I doing incorrectly?我做错了什么? What should be actual username and password?
实际的用户名和密码应该是什么? What should be the servername?
服务器名应该是什么?
const sql = require('mssql');
// config for your database
const config = {
user: 'mywindows username',
password: 'my windows password',
server: '(localdb)\\v11.0',
database: 'test',
options: {
encrypt: true
}
};
console.log('starting sql');
var connection = new sql.connect(config, function(err) {
console.log(err);
var request = new sql.Request(connection);
request.query('select * from employees', function(err, recordset) {
if(err) // ... error checks
console.log('Database connection error');
console.dir("User Data: "+recordset);
});
});
sql.close();
console.log('ending sql');
});
app.listen(3002, () => {
console.log('Listening on port 3002');})
Below is the error message下面是错误信息
{ ConnectionError: Failed to lookup instance on (localdb) - getaddrinfo ENOTFOUND (localdb) at Connection.tedious.once.err (C:\\Users\\vndbsubramaniam\\Desktop\\React projects\\ReactWithSql\\node_modules\\mssql\\lib\\tedious.js:244:17) at Object.onceWrapper (events.js:285:13) at Connection.emit (events.js:197:13) at InstanceLookup.instanceLookup (C:\\Users\\vndbsubramaniam\\Desktop\\React projects\\ReactWithSql\\node_modules\\tedious\\lib\\connection.js:945:16) at sender.execute (C:\\Users\\vndbsubramaniam\\Desktop\\React projects\\ReactWithSql\\node_modules\\tedious\\lib\\instance-lookup.js:66:13) at GetAddrInfoReqWrap.invokeLookupAll [as callback] (C:\\Users\\vndbsubramaniam\\Desktop\\React projects\\ReactWithSql\\node_modules\\tedious\\lib\\sender.js:43:16) at GetAddrInfoReqWrap.onlookupall [as oncomplete] (dns.js:70:17) code: 'EINSTLOOKUP', originalError: { ConnectionError: Failed to lookup instance on (localdb) - getaddrinfo ENOTFOUND (localdb) at ConnectionError (C:\\Users\\vndbsubramaniam\\Desktop\\React projects\\Reac
{ ConnectionError: Failed to lookup instance on (localdb) - getaddrinfo ENOTFOUND (localdb) at Connection.tedious.once.err (C:\\Users\\vndbsubramaniam\\Desktop\\React projects\\ReactWithSql\\node_modules\\mssql\\lib\\tedious.js: 244:17) 在 Object.onceWrapper (events.js:285:13) 在 Connection.emit (events.js:197:13) 在 InstanceLookup.instanceLookup (C:\\Users\\vndbsubramaniam\\Desktop\\React projects\\ReactWithSql\\node_modules \\tedious\\lib\\connection.js:945:16) 在 sender.execute (C:\\Users\\vndbsubramaniam\\Desktop\\React projects\\ReactWithSql\\node_modules\\tedious\\lib\\instance-lookup.js:66:13) 在 GetAddrInfoReqWrap .invokeLookupAll [作为回调] (C:\\Users\\vndbsubramaniam\\Desktop\\React projects\\ReactWithSql\\node_modules\\tedious\\lib\\sender.js:43:16) 在 GetAddrInfoReqWrap.onlookupall [作为 oncomplete] (dns.js:70: 17) 代码:'EINSTLOOKUP', originalError: { ConnectionError: Failed to lookup instance on (localdb) - getaddrinfo ENOTFOUND (localdb) at ConnectionError (C:\\Users\\vndbsubramaniam\\Desktop\\React projects\\Reac tWithSql\\node_modules\\tedious\\lib\\errors.js:13:12) at InstanceLookup.instanceLookup (C:\\Users\\vndbsubramaniam\\Desktop\\React projects\\ReactWithSql\\node_modules\\tedious\\lib\\connection.js:945:32) at sender.execute (C:\\Users\\vndbsubramaniam\\Desktop\\React projects\\ReactWithSql\\node_modules\\tedious\\lib\\instance-lookup.js:66:13) at GetAddrInfoReqWrap.invokeLookupAll [as callback] (C:\\Users\\vndbsubramaniam\\Desktop\\React projects\\ReactWithSql\\node_modules\\tedious\\lib\\sender.js:43:16) at GetAddrInfoReqWrap.onlookupall [as oncomplete] (dns.js:70:17) message: 'Failed to lookup instance on (localdb) - getaddrinfo ENOTFOUND (localdb)', code: 'EINSTLOOKUP' }, name: 'ConnectionError' } Database connection error
tWithSql\\node_modules\\tedious\\lib\\errors.js:13:12) 在 InstanceLookup.instanceLookup (C:\\Users\\vndbsubramaniam\\Desktop\\React projects\\ReactWithSql\\node_modules\\tedious\\lib\\connection.js:945:32) 在sender.execute (C:\\Users\\vndbsubramaniam\\Desktop\\React projects\\ReactWithSql\\node_modules\\tedious\\lib\\instance-lookup.js:66:13) 在 GetAddrInfoReqWrap.invokeLookupAll [作为回调] (C:\\Users\\vndbsubramaniam\\ Desktop\\React projects\\ReactWithSql\\node_modules\\tedious\\lib\\sender.js:43:16) 在 GetAddrInfoReqWrap.onlookupall [as oncomplete] (dns.js:70:17) 消息:'无法在 (localdb) 上查找实例 - getaddrinfo ENOTFOUND (localdb)', code: 'EINSTLOOKUP' }, name: 'ConnectionError' } 数据库连接错误
After struggling for hours on this one finally found the answer here SQL to Node connection在这个问题上挣扎了几个小时后终于在这里找到了SQL 到节点连接的答案
It seems i have to add msnodesqlv8 package and use add the driver syntax to the config.看来我必须添加 msnodesqlv8 包并使用将驱动程序语法添加到配置中。
app.get('/test', (req, res) => {
const sql = require('mssql/msnodesqlv8');
// config for your database
const config = {
database: 'test',
server: '(localdb)\\v11.0',
driver: 'msnodesqlv8',
options : {
trustedConnection : true
}
};
console.log('starting sql');
const pool = new sql.ConnectionPool(config);
pool.connect().then(() => {
//simple query
pool.request().query('select * from employees', (err, result) => {
if(err) res.send(err)
else{
return res.json({
data : result.recordset
})
}
})
sql.close();
})
console.log('ending sql');
}); });
you will need msnodesqlv8 driver, which you have to paste it in require as您将需要 msnodesqlv8 驱动程序,您必须将其粘贴到 require 中
var sql = require('mssql/msnodesqlv8'),
as well as you will have to include it in driver section in config object.以及您必须将其包含在配置对象的驱动程序部分中。
var config = {
user:"*****",
password:"*****",
database:"*****",
driver: 'msnodesqlv8',
server:"*****",
options: {
trustedConnection : true
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.