Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.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
Node.js 在heroku中使用typeorm时出现意外标记“导出”_Node.js_Postgresql_Heroku_Nestjs_Typeorm - Fatal编程技术网

Node.js 在heroku中使用typeorm时出现意外标记“导出”

Node.js 在heroku中使用typeorm时出现意外标记“导出”,node.js,postgresql,heroku,nestjs,typeorm,Node.js,Postgresql,Heroku,Nestjs,Typeorm,我正在关注如何让TypeForm和PostgreSQL在Heroku中工作 使用ormconfig.js和module.exports,我得到了这个错误 MissingDriverError: Wrong driver: "undefined" given. Supported drivers are: "cordova", "expo", "mariadb", "mongodb", "mssql", "mysql", "oracle", "postgres", "sqlite", "sqljs

我正在关注如何让TypeForm和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".
上面的链接显示切换到.ts并使用导出

因此..使用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'

我也尝试过使用导出默认值,但出现了与导出相同的错误

不太清楚该怎么办…有人有这个问题吗

在heroku中运行我的node.js应用程序是否需要包括babel

这样做可以摆脱2020-03-25T05:07:57.946989+00:00应用程序[web.1]:SyntaxError:意外令牌“导出”错误:

ormconfig必须保留.js扩展名

此外,我正在解析Heroku中的数据库URL,并将所有变量添加到ormconfig中相应的占位符中,如下所示:


按照这种方法,我得到了上面提到的MissingDriverError,我可以看到一个示例代码吗?在TypeORM中,如果有一个名为ormconfig的文件,那么TypeORM将其用作DB连接文件。我正在做的另一件事是在app.module.ts中调用TypeOrmModule.forRoot。您是否在Heroku中设置了环境变量DATABASE_TYPE?Heroku默认提供一个数据库URL,如果您不只是将URL传递给数据库,则必须手动将其解析为正确的部分connector@JayMcDoniel是的,我在heroku的变量部分设置了数据库类型变量。我还注意到tsconfig.json包含了ormconfig.js而不是.ts,所以我改变了我认为解决了我遇到的问题的方法??现在转到Heroku找不到app/dist/main.js的下一个问题
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;
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,
  },
};
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;