为什么默认参数值不起作用?
Why does default parameter value not work?
我有一个函数可以从数据库中抓取一些东西。我想将函数设置为接受一个 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})
出于某种原因,执行上述操作无效。也就是说,我总是在 ProductID
.
的控制台中得到 undefined
如果我简单地执行以下操作,那么我会在控制台中打印出正确的 ProductID
值:
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()
......
}
我正在使用带有 babel-loader 的 Webpack。我 不认为 这是一个转译问题,但不确定。有任何想法吗?在我的 Webpack 配置中,我有这个来处理 js
个文件:
{
test: /\.js$/,
include: [ srcPath ],
exclude: ['/node_modules/','/src/test'],
use: {
loader: 'babel-loader',
options: {
presets: ["@babel/preset-env"] //Preset used for env setup
}
}
}
我认为你希望 getProduct
的参数被解构:
function getProduct({DBConnection = DBConfig.SQLConnection, ProductID}) {
...
}
那么你可以这样做:
Product = await api.getProduct({ProductID: req.body.ProductID})
应该不是 webpack 或 babel 的问题
我有一个函数可以从数据库中抓取一些东西。我想将函数设置为接受一个 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})
出于某种原因,执行上述操作无效。也就是说,我总是在 ProductID
.
undefined
如果我简单地执行以下操作,那么我会在控制台中打印出正确的 ProductID
值:
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()
......
}
我正在使用带有 babel-loader 的 Webpack。我 不认为 这是一个转译问题,但不确定。有任何想法吗?在我的 Webpack 配置中,我有这个来处理 js
个文件:
{
test: /\.js$/,
include: [ srcPath ],
exclude: ['/node_modules/','/src/test'],
use: {
loader: 'babel-loader',
options: {
presets: ["@babel/preset-env"] //Preset used for env setup
}
}
}
我认为你希望 getProduct
的参数被解构:
function getProduct({DBConnection = DBConfig.SQLConnection, ProductID}) {
...
}
那么你可以这样做:
Product = await api.getProduct({ProductID: req.body.ProductID})
应该不是 webpack 或 babel 的问题