Почему значение параметра по умолчанию не работает? - PullRequest
0 голосов
/ 16 апреля 2020

У меня есть функция, которая берет некоторые вещи из базы данных. Я хочу настроить функцию так, чтобы она принимала строковый параметр 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 в консоли для ProductID.

Если я просто сделаю следующее, то получу правильное значение 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()
    ......
    }

Я использую Webpack с babel-loader. Я не думаю это проблема с транспиляцией, но я не уверен. Любые идеи? В моей конфигурации 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
        }
      }
    }

1 Ответ

1 голос
/ 17 апреля 2020

Я думаю, вы хотите, чтобы параметры getProduct были деструктурированы:

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

Тогда вы можете сделать:

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

Не должно быть проблема с веб-пакетом или вавилонским сообщением

...