Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么默认参数值不起作用?_Javascript_Webpack_Babeljs_Babel Loader - Fatal编程技术网

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

Javascript 为什么默认参数值不起作用?,javascript,webpack,babeljs,babel-loader,Javascript,Webpack,Babeljs,Babel Loader,我有一个函数可以从数据库中获取一些东西。我想将函数设置为接受DBConnectionstring参数和ProductID参数,但由于很少提供这一点,我希望设置一个默认值。我尝试了以下方法: const DBConfig = require('./db.config'); async function getProduct(DBConnection = DBConfig.SQLConnection, ProductID) { console.log(ProductID) //

我有一个函数可以从数据库中获取一些东西。我想将函数设置为接受
DBConnection
string参数和
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的网页包。我不认为这是一个透明的问题,但不确定。有什么想法吗?在我的网页配置中,我要处理
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
的参数进行分解:

函数getProduct({DBConnection=DBConfig.SQLConnection,ProductID}){ ... } 然后你可以做:

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

不应该是webpack或babel问题

带有默认值的参数必须在没有默认值的参数之后。我认为您的想法是正确的,但这不是在解构参数中提供默认值的正确语法。
function getProduct({DBConnection=DBConfig.SQLConnection,ProductID}{…}