Как разместить приложение nodeJS ReactJS на Gandi (или другой хостинговой компании)? - PullRequest
0 голосов
/ 30 августа 2018

В первый раз я не использую Heroku, но я пытаюсь разместить свой веб-сайт (узел и экспресс для задней части и реагировать для передней) с Ганди. К сожалению, пока у меня ошибка 503. Вот как я это делаю на Heroku:

файл Server.js

const express = require("express");
const mongoose = require("mongoose");
const bodyParser = require("body-parser");

const app = express();

// Body parser middleware
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());

const profiles = require("./routes/profiles");
const categories = require("./routes/categories");
const skills = require("./routes/skills");
const message = require("./routes/message");

// DB config
const db = require("./config/keys.js").mongoURI;

// Connect to mongoDB
mongoose
  .connect(
    db,
    { useNewUrlParser: true }
  )
  .then(() => console.log("MongoDB connected"))
  .catch(err => console.log(err));

// Use Routes
app.use("/profiles", profiles);
app.use("/categories", categories);
app.use("/skills", skills);
app.use("/message", message);

// Server static assets if in production
if (process.env.NODE_ENV === "production") {
  // Set static folder
  app.use(express.static("client/build"));
  app.get("*", (req, res) => {
    res.sendFile(path.resolve(__dirname, "client", "build", "index.html"));
  });
}

const port = process.env.PORT || 5000;

app.listen(port, () => console.log(`Server running on port ${port}`));

Файл Package.json:

{
  "name": "adopt-a-dev",
  "version": "1.0.0",
  "description": "Find the best dev for your company",
  "main": "server.js",
  "scripts": {
    "client-install": "npm install --prefix client",
    "start": "node server.js",
    "server": "nodemon server.js",
    "client": "npm start --prefix client",
    "dev": "concurrently \"npm run server\" \"npm run client\"",
    "heroku-postbuild": "NPM_CONFIG_PRODUCTION=false npm install --prefix client && npm run build --prefix client"
  },
  "author": "Guillaume Cogito",
  "license": "MIT",
  "dependencies": {
    "body-parser": "^1.18.3",
    "concurrently": "^3.6.1",
    "express": "^4.16.3",
    "mongoose": "^5.2.7",
    "nodemailer": "^4.6.8",
    "validator": "^10.6.0"
  },
  "devDependencies": {
    "nodemon": "^1.18.3"
  }
}

Хорошо работает на герою, но я не знаю, что изменить, чтобы оно работало на
Gandi. Если у кого-то есть какой-то совет или, может быть, хороший специалист, чтобы знать, с чего начать, было бы неплохо. Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 04 декабря 2018

Даже у меня была такая же проблема. Nodejs с ReactJS - это приложение, интенсивно использующее память, даже если это очень простое приложение.

Я думаю, что вы используете простой хост-экземпляр gandi nodejs (https://www.gandi.net/en/simple-hosting) для запуска вашего приложения. Экземпляр простого хостинга Gandi nodejs обеспечивает 128 МБ ОЗУ на процесс. Таким образом, вашему приложению не хватит памяти и вы получите 503 ошибка.

Для решения этой проблемы вам необходимо использовать облачный сервер Gandi с минимальной оперативной памятью 1 ГБ . Чтобы купить облако Ганди, посетите здесь: https://www.gandi.net/en/cloud

С другой стороны,

Вы можете использовать Heroku, namecheap и т. Д., Что обеспечивает больше оперативной памяти. Простой хостинг Gandi не будет работать, потому что у вас не хватит памяти.

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