Node.js 在heroku中使用typeorm时出现意外标记“导出”
我正在关注如何让TypeForm和PostgreSQL在Heroku中工作 使用ormconfig.js和module.exports,我得到了这个错误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
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;