我有 node.js 应用程序 我正在使用 dotenv 设置 .env,使用端口时出现以下错误

I have node.js application I am setting .env using dotenv, I get the following error when using port

我有 node.js 应用程序 我已经安装了 dotenv 并在我的 .env 文件中添加了以下配置

 DB_HOST='localhost'
 DB_Database=TheDatabasename
 DB_USER=TheUser
 DB_PASS=thePassword
 DB_PORT=1433

我正在使用 sqlserver 我调用 dotenv 如下所示:

const sql = require('mssql');
const dotenv = require('dotenv');
dotenv.config();

const config = {
 user: process.env.DB_USER,
 password: process.env.DB_PASS,
 server: process.env.DB_HOST, 
 database: process.env.DB_Database,
 port: process.env.DB_PORT,
}

 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
 }

我收到以下错误:

  Database Connection Failed! Bad Config:  TypeError: The "config.options.port" property must be of type number.

Ms​​sql,端口参数要求类型号,环境变量为字符串。

你应该在发送给驱动程序之前转换值

...
 port: parseInt(process.env.DB_PORT, 10),
...

所有环境变量都是STRINGS,所以只需将端口转换为INT即可。

const config = {
  user: process.env.DB_USER,
  password: process.env.DB_PASS,
  server: process.env.DB_HOST,
  database: process.env.DB_DATABASE,
  port: +process.env.DB_PORT,
  pool: {
    max: 10,
    min: 0,
    idleTimeoutMillis: 30000,
  },
  options: {
    encrypt: false,
    trustedServerCertificate: false,
  },
};