连接到SQL Server ELOGIN代码的NodeJs错误

时间:2019-06-17 04:44:35

标签: sql node.js sql-server

我正在尝试从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'

我正在想解决这个问题。有什么想法吗?

2 个答案:

答案 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
    }