Проблемы развертывания Sequelize API для Heroku - PullRequest
0 голосов
/ 04 ноября 2018

Я пытаюсь развернуть простой CRUD API, созданный с помощью Sequelize и Postgres, для Heroku, но я просто получаю несколько загадочных сообщений в журнале о том, почему он не работает.

Мой sequlize.js файл выглядит так:

const UserModel = require("./user")
const HoursLoggedModel = require('./hourslogged');

const path = require('path');
const Sequelize = require('sequelize');
const env = process.env.NODE_ENV || 'development';
const config = require(__dirname + '/../config/config.js')[env];


if (config.use_env_variable) {
  var sequelize = new Sequelize(process.env[config.use_env_variable], config);
} else {
  var sequelize = new Sequelize(config.database, config.username, config.password, config);
}

const User = UserModel(sequelize, Sequelize)
const HoursLogged = HoursLoggedModel(sequelize, Sequelize)

HoursLogged.belongsTo(User);

sequelize.sync() 
  .then(() => {
    console.log("Database & tables running")
  })


module.exports = {
  User,
  HoursLogged,
}

Куда я импортирую две простые модели.

Файл config.js, в котором я установил переменные среды, выглядит следующим образом:

module.exports = {
"development": {
  "username": "root",
  "password": "password",
  "database": "vueapp",
  "host": "localhost",
  "dialect": "postgres"
},
"production": {
  "use_env_variable": process.env.DATABASE_URL,
  "dialect": "postgres"
}

}

И файл index.js, который обслуживает все:

const express = require("express");
const bodyParser = require("body-parser");
const routes = require("./routes/api");


// set up express app
const app = express();

app.use(bodyParser.json());

// intialize and use routes
app.use("/api", routes)

// error handling middleware
app.use((err, req, res, next) => {
    res.status(422).send({error: err.original.detail}) // 422 makes sure status is not 200 even though error exists
})

app.listen(process.env.port || 4000, () => {
    console.log("listening for requests");
})

Когда я пытаюсь отладить его с помощью heroku logs --tail, я просто получаю сообщения об ошибках, подобные этим:

2018-11-03T23:49:53.946566+00:00 heroku[web.1]: State changed from crashed to starting
2018-11-03T23:49:55.835819+00:00 heroku[web.1]: Starting process with command `npm start`
2018-11-03T23:49:57.850511+00:00 app[web.1]: 
2018-11-03T23:49:57.850530+00:00 app[web.1]: > postgres-api@1.0.0 start /app
2018-11-03T23:49:57.850532+00:00 app[web.1]: > node index
2018-11-03T23:49:57.850533+00:00 app[web.1]: 
2018-11-03T23:49:58.341837+00:00 app[web.1]: url.js:152
2018-11-03T23:49:58.341874+00:00 app[web.1]: throw new ERR_INVALID_ARG_TYPE('url', 'string', url);
2018-11-03T23:49:58.341875+00:00 app[web.1]: ^
2018-11-03T23:49:58.341876+00:00 app[web.1]: 
2018-11-03T23:49:58.341878+00:00 app[web.1]: TypeError [ERR_INVALID_ARG_TYPE]: The "url" argument must be of type string. Received type undefined

Что url.js - Это что-то, что предлагает герою?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...