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

Meh*_*lal 5 node.js dotenv

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

 DB_HOST='localhost'
 DB_Database=TheDatabasename
 DB_USER=TheUser
 DB_PASS=thePassword
 DB_PORT=1433
Run Code Online (Sandbox Code Playgroud)

我正在使用 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
 }
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

  Database Connection Failed! Bad Config:  TypeError: The "config.options.port" property must be of type number.
Run Code Online (Sandbox Code Playgroud)

Yei*_*nco 8

Mssql,需要在port参数中输入类型号,环境变量为字符串。

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

...
 port: parseInt(process.env.DB_PORT, 10),
...
Run Code Online (Sandbox Code Playgroud)

  • 我认为你应该使用后备... `parseInt(process.env.DB_PORT || "", 10) ` (2认同)