неожиданный токен «экспорт» при использовании typeorm в heroku - PullRequest
1 голос
/ 25 марта 2020

Я следую этой ветке о том, как заставить TypeORM и PostgreSQL работать в Heroku.

Используя ormconfig.js и module.exports Я получаю эту ошибку

MissingDriverError: Wrong driver: "undefined" given. Supported drivers are: "cordova", "expo", "mariadb", "mongodb", "mssql", "mysql", "oracle", "postgres", "sqlite", "sqljs", "react-native".
const env = require('dotenv')
env.config()

module.exports = {
  name: 'default',
  type: process.env.DATABASE_TYPE,
  host: process.env.DATABASE_HOST,
  port: 5432,
  username: process.env.DATABASE_USERNAME,
  password: process.env.DATABASE_PASSWORD,
  database: process.env.DATABASE_NAME,
  synchronize: true,
  dropSchema: false,
  logging: true,
  entities: ['/src/**/*.entity.ts', 'dist/**/*.entity.js'],
  extra: {
    ssl: true,
  },
};

Приведенная выше ссылка говорит о переключении на .ts и использовании export

, так что ... используя ormconfig.ts и export = config Я получаю эту ошибку:

2020-03-25T05:07:57.946988+00:00 app[web.1]: export = config
2020-03-25T05:07:57.946988+00:00 app[web.1]: ^^^^^^
2020-03-25T05:07:57.946988+00:00 app[web.1]: 
2020-03-25T05:07:57.946989+00:00 app[web.1]: SyntaxError: Unexpected token 'export'

const config = {
  name: 'default',
  type: process.env.DATABASE_TYPE,
  host: process.env.DATABASE_HOST,
  port: 5432,
  username: process.env.DATABASE_USERNAME,
  password: process.env.DATABASE_PASSWORD,
  database: process.env.DATABASE_NAME,
  synchronize: true,
  dropSchema: false,
  logging: true,
  entities: ['/src/**/*.entity.ts', 'dist/**/*.entity.js'],
  extra: {
    ssl: true,
  },
};

export = config;

Я также пытался использовать export default, но у меня была та же ошибка, что и при экспорте ...

Не совсем точно, откуда go отсюда ... у кого-нибудь были такие проблемы?

Нужно ли включать babel для запуска моих node.js приложений в heroku?

Ответы [ 2 ]

0 голосов
/ 25 марта 2020

ormconfig ДОЛЖЕН сохранять расширение .js.

Кроме того, я анализирую DATABASE_URL из Heroku и добавляю все переменные в соответствующие заполнители в ormconfig, например, так:

const parse = require('pg-connection-string').parse;
const env = require('dotenv')
env.config()

const config = parse(process.env.DATABASE_URL)

const pgConnection  = {
  type: "postgres",
  host: config.host,
  port: config.port,
  username: config.user,
  password: config.password,
  database: config.database,
  synchronize: true,
  dropSchema: false,
  logging: true,
  entities: ['/src/**/*.entity.ts', 'dist/**/*.entity.js'],
  extra: {
    ssl: true,
  }
}

module.exports = pgConnection;
0 голосов
/ 25 марта 2020

Сделайте так, чтобы избавиться от (2020-03-25T05: 07: 57.946989 + 00: 00 приложение [web.1]: SyntaxError: неожиданный токен 'экспорт') ошибка:

exports.config = {
  name: 'default',
  type: process.env.DATABASE_TYPE,
  host: process.env.DATABASE_HOST,
  port: 5432,
  username: process.env.DATABASE_USERNAME,
  password: process.env.DATABASE_PASSWORD,
  database: process.env.DATABASE_NAME,
  synchronize: true,
  dropSchema: false,
  logging: true,
  entities: ['/src/**/*.entity.ts', 'dist/**/*.entity.js'],
  extra: {
    ssl: true,
  },
};
...