为什么默认参数值不起作用?

时间:2020-04-16 20:59:45

标签: javascript webpack babeljs babel-loader

我有一个函数,可以从数据库中获取一些东西。我想将函数设置为接受DBConnection字符串参数和ProductID参数,但是由于很少提供此参数,因此我希望设置一个默认值。我尝试了以下方法:

const DBConfig = require('./db.config');
async function getProduct(DBConnection = DBConfig.SQLConnection, ProductID) {
    console.log(ProductID)       // says undefined
    await DBConnection.connect()
......
}

我通过执行以下操作从另一个文件调用上述函数:

Product = await api.getProduct({ProductID: req.body.ProductID})

由于某些原因,无法执行上述操作。也就是说,我总是在控制台中获得undefined的{​​{1}}。

如果仅执行以下操作,则可以在控制台中获得正确的ProductID值打印:

ProductID

我正在将Webpack与babel-loader一起使用。我不认为这是一个翻译问题,但不确定。有任何想法吗?在我的Webpack配置中,我可以用它来处理const DBConfig = require('./db.config'); const DBConnection = DBConfig.SQLConnection, async function getProduct(ProductID) { console.log(ProductID) // prints in the console as { ProductID: '1234' } await DBConnection.connect() ...... } 文件:

js

1 个答案:

答案 0 :(得分:1)

我认为您希望对getProduct的参数进行重构:

function getProduct({DBConnection = DBConfig.SQLConnection, ProductID}) {
    ...
}

然后您可以做:

Product = await api.getProduct({ProductID: req.body.ProductID})

应该不是webpack或babel的问题