首页 > 解决方案 > TypeError:“config.server”属性是必需的,并且必须是字符串类型

问题描述

面对错误

数据库连接失败!错误配置:TypeError:“config.server”属性是必需的,并且必须是字符串类型。在 base.Promise (D:\License Generation\node_modules\mssql\lib\tedious.js:237:23) 处的新连接 (D:\License Generation\node_modules\tedious\lib\connection.js:87:13) ConnectionPool._pool 处的新 Promise () 在 ConnectionPool._connect 处创建 (D:\License Generation\node_modules\mssql\lib\tedious.js:195:12) (D:\License Generation\node_modules\mssql\lib\base.js: 245:10) 在 PromiseLibrary (D:\License Generation\node_modules\mssql\lib\base.js:220:19) 在 ConnectionPool.connect (D:\License Generation\node_modules\mssql\lib\base 的新 Promise () .js:219:12) 在对象。(D:\License Generation\dbConfig.js:6:2) 在 Module._compile (internal/modules/cjs/loader.js:689:30)

配置文件

//Database Configuration
const dbconfiguration = {
    server: 'xyz', 
    user: 'fdf',
    password: 'safgfg',
    database: 'License_Keys',
    port: 1433 
};
module.exports = dbconfiguration;
const sqlInstance = require('mssql');
const configFile = require('./app.config');

//connect to your database
const poolPromise = new sqlInstance.ConnectionPool(configFile.dbconfiguration)
.connect()
.then(pool => {
    console.log('Connected to MSSQL')
    return pool
})
.catch(err => console.log('Database Connection Failed! Bad Config: ', err))

module.exports = poolPromise;

标签: node.jssql-server

解决方案


直接使用 required configFile,因为您要从该文件中导出单个 const 变量对象,所以您不需要像访问它一样configFile.dbconfiguration

这应该工作,

sqlInstance.ConnectionPool(configFile)

注意:为了消除混淆,您也可以像这样导出数据库配置,

//Database Configuration
module.exports = {
    server: 'xyz', 
    user: 'fdf',
    password: 'safgfg',
    database: 'License_Keys',
    port: 1433 
};

推荐阅读