我正在尝试从nodeJS
连接到sql server
上的本地主机。我知道有很多与此相关的问题,但似乎没有什么可以解决我的问题。
我的问题是,当我运行该应用程序时,出现以下错误:
Login failed for user \'admin\'.', code: 'ELOGIN' },
这是我的连接详细信息:
const sql = require('mssql');
const config = {
host:'localhost',
user:'admin',
password:'password',
database:'database',
server:'localhost\\SQLEXPRESS'
}
const poolPromise = new sql.ConnectionPool(config)
.connect()
.then(pool => {
console.log('Connected to localhost '+ config.database +' database');
return pool;
})
.catch(err => console.log('Database connection failed. Error: ', err));
module.exports = {
sql, poolPromise
}
然后,此PoolPromiseis在某些存储库文件中用于管理数据库中的数据,如下所示:
const { poolPromise } = require('./pool');
module.exports = {
create: async function (name) {
const pool = await poolPromise;
return await pool.request()
.input('nameParameter', name)
.query('INSERT INTO dbo.table(nombre) VALUES (@nameParameter)')
.then(result => {
console.log(result);
}).catch(function(err) {
console.log(err.message);
});
},
我尝试安装msnodesqlv8
模块,但是它不起作用,我的npm版本是npm: '6.4.1'
。
我正在想解决这个问题。有什么想法吗?
答案 0 :(得分:0)
const sql = require('mssql')
const config = {
user: 'root',
password: 'root',
server: 'localhost',
database: 'test'
}
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))
module.exports = {
sql, poolPromise
}
const express = require('express')
const router = express.Router()
const { poolPromise } = require('./pool')
router.get('/', async (req, res) => {
try {
const pool = await poolPromise
const result = await pool.request()
.input('input_parameter', sql.Int, req.query.input_parameter)
.query('select * from mytable where id = @input_parameter')
res.json(result.recordset)
} catch (err) {
res.status(500)
res.send(err.message)
}
})
module.exports = router
答案 1 :(得分:0)
请使用实例和服务器
dialect: 'mssql',
port: 1433,
options: {
// If you are on Microsoft Azure, you need encryption:
encrypt: true,
database: process.env.SQL_DATABASE , //update me
instanceName: process.env.SQL_INSTANCE
}