簡體   English   中英

將 nodejs 連接到 SQL Server

[英]Connecting nodejs to SQL Server

我正在將這個包與 express-js 一起使用,我有這個連接設置,但它返回一個錯誤:

類型錯誤:“config.server”屬性是必需的,並且必須是字符串類型。

配置:

const config = new sql.ConnectionPool({
    user: 'USERNAME',
    password: 'PASSWORD',
    database: 'My_DATABASE_NAME',
    server: '120.000000.000,3306/SQLSERVER2014',
});

然后這段代碼執行程序

app.get('/users', (req, res) => {
    sql.connect(config).then(pool =>{
        return pool.request()
        // .execute('procedure_name')
        .query('select * from AspNetUsers');
    }).then(result => {
        console.dir(result)
        pool.close();
    }).catch(err => {
        console.log(err);
        pool.close();
    });
});

知道server值可能有什么問題嗎?

lib 文檔不像您的示例代碼那樣說。 您推送一個ConnectionPool實例(存儲在config變量中)以connect sql功能。

我認為,您需要選擇一種從 mssql 服務器查詢數據的方法:

  1. ConnectionPool ,重用您的代碼,創建一個連接池,然后使用它。
const pool = new sql.ConnectionPool({ // `pool` - clear variable name
  user: 'USERNAME',
  password: 'PASSWORD',
  database: 'My_DATABASE_NAME',
  server: 'localhost', // Example
});


//
app.get('/users', (req, res) => {
  pool.connect() // just call .connect
    .then(() => {
      return pool.request() // use `pool` const
        // .execute('procedure_name')
        .query('select * from AspNetUsers');
    }).then(result => {
      console.dir(result)
      pool.close();
    }).catch(err => {
      console.log(err);
      pool.close();
    });
});
  1. 每次要查詢數據時都創建新的連接池。
const config = { // A "normal" json object
  user: 'USERNAME',
  password: 'PASSWORD',
  database: 'My_DATABASE_NAME',
  server: 'localhost', // Example
};


//
app.get('/users', (req, res) => {
  const pool = null;
  sql.connect(config) // create new connection pool
    .then(newPool => {
      pool = newPool;
      return pool.request()
        // .execute('procedure_name')
        .query('select * from AspNetUsers');
    }).then(result => {
      console.dir(result)
      pool.close();
    }).catch(err => {
      console.log(err);
      pool && pool.close();
    });
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM