неверный оператор импорта для node.js - PullRequest
0 голосов
/ 13 февраля 2020

Мы пытаемся использовать новейшие стандарты и обновляем наши javascript файлы require разделы. Мы пытаемся обновить это:

const {app: { port, test_var }} = require('../config/config')
const app = require('./app')

до этого:

import {app: { port, test_var }} from '../config/config'
import app from './app'

Но выдается следующая ошибка:

import {app: { port, test_var }} from '../config/config'
           ^
SyntaxError: Unexpected token ':'

Что будет правильным синтаксис? Я не могу найти пример для этого конкретного c случая в документации .

Это содержимое config.js:

const env = process.env.NODE_ENV || 'development'
console.log(`Environment '${env}'`)

const development = {
  app: {
    port: parseInt(process.env.DEV_APP_PORT) || 3000,
    test_var: parseInt(process.env.TEST_VAR),
    // Generate token:
    // require('crypto').randomBytes(128).toString('hex')
    accessTokenKey: process.env.accessTokenKey || '5ef37718e7c74b',
    refreshTokenKey: process.env.refreshTokenKey || 'j;9f0as8098fas'
  },
  db: {
    host: process.env.DEV_DB_HOST || 'localhost',
    port: parseInt(process.env.DEV_DB_PORT) || 27017,
    name: process.env.DEV_DB_NAME || 'db'
  }
}

const production = {
  app: {
    port: parseInt(process.env.PROD_APP_PORT) || 8080,
    accessTokenKey: process.env.accessTokenKey,
    refreshTokenKey: process.env.refreshTokenKey
  },
  db: {
    host: process.env.PROD_DB_HOST || 'ServerProd',
    port: parseInt(process.env.PROD_DB_PORT) || 27017,
    name: process.env.PROD_DB_NAME || 'NodeDB'
  }
}

const config = {
  development,
  production
}

module.exports = config[env]

1 Ответ

0 голосов
/ 13 февраля 2020

Вы не можете использовать module.exports тогда, потому что это старый способ, который работает с require. Пожалуйста, посмотрите на

Экспорт ECMA

========================== ================

Отредактируйте мой ответ, потому что сначала неясно.

Предложение импорта в импорте ES6 не то же самое, что деструктурирование. Существует сходство syntacti c, если вы читаете do c. об импорте, но для этого нет конструкторов. Используйте другой оператор для деструктуризации после импорта

...