При первом развертывании серверной части express в Heroku 2 код ошибки h10 Процесс завершен со статусом 1

#javascript #node.js #reactjs #express #heroku

#javascript #node.js #reactjs #экспресс #героку

Вопрос:

Привет, я пытался развернуть свое приложение в течение последних 3 часов и, похоже, не могу разобраться в проблеме. Я новичок в развертывании на heroku, и после устранения неполадок в течение последних двух часов я составил список вещей, которые я пробовал из других ответов

  1. добавление node_modules/ в .gitignore
  2. создание профиля и написание web: node server.js (server.js это файл, на котором я запускаю сервер)
  3. Проверка того, что я жестко закодировал порт, в котором мой код прямо сейчас находится server.js
 const PORT = process.env.PORT || 5000;


app.listen(PORT, () => console.log(`Listening on port:${PORT}`))
 
  1. перезапуск моего сервера с помощью heroku ps: scale web = 0, ожидание несколько секунд и heroku ps: scale web = 1
  2. повторное развертывание моего приложения
  3. установка для моей конфигурации конфигурации npm значения false
  4. запустив heroku run bash и npm start, я получаю больше ошибок, которые, по-видимому, имели какое-то отношение к bcrypt, в котором я установил последнюю версию и переустановил node_modules, но теперь я получаю это

введите описание изображения здесь

это мой package.json

 {
  "name": "todolist",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo "Error: no test specified" amp;amp; exit 1",
    "start": "node server.js"
  },
  "repository": {
    "type": "git",
    "url": "hiding this"
  },
  "author": "",
  "license": "ISC",
  "bugs": {
    "url": hiding this
  },
  "homepage": hiding this,
  "dependencies": {
    "bcrypt": "^5.0.0",
    "cors": "^2.8.5",
    "express": "^4.17.1",
    "jsonwebtoken": "^8.5.1",
    "morgan": "^1.10.0",
    "mysql2": "^2.2.5",
    "pg": "^8.5.1",
    "sequelize": "^6.3.5"
  },
  "devDependencies": {
    "sequelize-cli": "^6.2.0"
  }
}
 

Это мой config.json

 {
  "development": {
    "database": "todolist_development",
    "dialect": "postgres"
  },
  "test": {
    "database": "express_react_auth_test",
    "dialect": "postgres"
  },
  "production": {
    "use_env_variable": "DATABASE_URL",
    "dialect": "postgres",
    "dialectOptions": {
      "ssl": true
    }
  }
}
 

это моя структура папок введите описание изображения здесь

любая помощь будет очень признательна

Комментарии:

1. Похоже, вам не хватает строки подключения к БД. Вы уверены, что установили его в env-файле?

2. в настоящее время у меня нет файла .env, нужен ли он для развертывания? и если да, то как мне это сделать? вы имеете в виду process.env? Я думал, что это было сделано автоматически heroku

3. Хорошо, как вы указываете значения, к которым вы обращаетесь с помощью process.env? Я думаю, вам нужно установить переменную DATABASE_URL. Это может быть полезно: devcenter.heroku.com/articles/config-vars

Ответ №1:

Возможно, вы забыли установить переменные среды в heroku. Просто поместите все ключи и значения, которые у вас есть в вашем .env, в переменные конфигурации heroku и не забудьте добавить дополнение db в свое приложение Heroku, если вы используете mysql, я бы рекомендовал использовать ClearDB.

Комментарии:

1. У меня нет файла .env, и я действительно не понимаю процесс.env извините, я очень медленный. Я запустил свое приложение heroku, запустив его, heroku addons:add heroku-postgresql и я проверил свой конфигурационный параметр для DATABASE_URL и установил для него значение postgres://kdlovcwzdgzrgi:7cb8342c1ea636be245f8c69f6c5349be4b9921b39128373fbe3168694259288@ec2-3-224-38-18.compute-1.amazonaws.com:5432/d95jfgnsi2cfbf Я попытался выполнить вызовы URL-адреса heroku, и единственное, что работает, это root (‘/’), если я попытаюсь выполнить вызов API для (‘/ todos’), он говоритсвязь не существует, потому что она не заполняет мою базу данных

2. Я думаю, что, возможно, прямо сейчас я двигаюсь назад, если честно

3. @andrewkim пока вы успешно добавили дополнение Heroku Postgres, вам необходимо разобраться с миграциями БД, чтобы иметь таблицы в вашей БД. Вот ссылка для работы с миграциями в sequelize sequelize.org/master/manual/migrations.html