问题描述
我的 express 项目无法使用 mssql 库连接到 sql Server。我可以连接 VS Code 和 sql Server Management Studio
var express = require('express');
var app =
express();
const sql = require('mssql')
var config = {
user: 'eren',password: 'PAsspoxx1.',server: 'localhost',database: 'AIRPLANE',options: {
encrypt: true,enableArithAbort: true}
};
const poolPromise = new sql.ConnectionPool(config)
.connect()
.then(pool => {
console.log('Connected to MSsql')
return pool
})
.catch(err => console.log('Database Connection Failed! Bad Config: ',err))
app.get('/',function (req,res) {
// Configuration object for your database
// connect to the database
sql.connect(config,function (err) {
console.log("x")
if (err) console.log(err);
// create Request object
var request = new sql.Request();
// query to the database and get the records
request.query('select * from User',function (err,recordset) {
if (err) console.log(err)
// send records as a response
res.send(recordset);
});
});
});
var server = app.listen(3000,function () {
console.log('Server is running..');
});
我的错误说明:
数据库连接失败!错误配置:ConnectionError:无法连接到 localhost:1433 - 无法连接(序列)
在连接。 (C:\Users\Anıl Eren\Downloads\database-api\node_modules\mssql\lib\tedious\connection-pool.js:68:17)
在 Object.onceWrapper (events.js:422:26)
在 Connection.emit (events.js:315:20)
在 Connection.socketError (C:\Users\Anıl Eren\Downloads\database-api\node_modules\mssql\node_modules\tedious\lib\connection.js:1290:12)
在 C:\Users\Anıl Eren\Downloads\database-api\node_modules\mssql\node_modules\tedious\lib\connection.js:1116:21
在 SequentialConnectionStrategy.connect (C:\Users\Anıl Eren\Downloads\database-api\node_modules\mssql\node_modules\tedious\lib\connector.js:87:14)
在 Socket.onError (C:\Users\Anıl Eren\Downloads\database-api\node_modules\mssql\node_modules\tedious\lib\connector.js:100:12)
在 Socket.emit (events.js:315:20)
在emitErrorNT (internal/streams/destroy.js:106:8)
在emitErrorCloseNT (internal/streams/destroy.js:74:3) {
代码:'ESOCKET',
originalError: ConnectionError: Failed to connect to localhost:1433 - 无法连接(序列)
在 ConnectionError (C:\Users\Anıl Eren\Downloads\database-api\node_modules\mssql\node_modules\tedious\lib\errors.js:13:12)
在 Connection.socketError (C:\Users\Anıl Eren\Downloads\database-api\node_modules\mssql\node_modules\tedious\lib\connection.js:1290:56)
在 C:\Users\Anıl Eren\Downloads\database-api\node_modules\mssql\node_modules\tedious\lib\connection.js:1116:21
在 SequentialConnectionStrategy.connect (C:\Users\Anıl Eren\Downloads\database-api\node_modules\mssql\node_modules\tedious\lib\connector.js:87:14)
在 Socket.onError (C:\Users\Anıl Eren\Downloads\database-api\node_modules\mssql\node_modules\tedious\lib\connector.js:100:12)
在 Socket.emit (events.js:315:20)
在emitErrorNT (internal/streams/destroy.js:106:8)
在emitErrorCloseNT (internal/streams/destroy.js:74:3)
在 processticksAndRejections (internal/process/task_queues.js:80:21) {
代码:'ESOCKET'
}
}
编辑: 启用 TCP/IP 1433端口
解决方法
var config = {
user: 'eren',password: 'PAssPoxx1.',server: 'localhost',database: 'AIRPLANE',options: {
encrypt: true,enableArithAbort: true}
};
您的 sqlserver 实例是否名为 mssqlserver?如果不是,您在大多数情况下必须指定实例名称“localhost\SQLEXPRESS”。