如何在Gandi(或其他托管公司)上托管nodeJS ReactJS应用程序?

时间:2018-08-30 13:41:29

标签: node.js reactjs hosting

这是我第一次不使用Heroku,但是我尝试使用Gandi托管我的网站(节点并表示背面,而对正面表示响应)。 不幸的是,到目前为止,我遇到了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"
  }
}

它在heroku上效果很好,但是我不知道要对其进行更改以使其在
上起作用 甘地如果有人提供一些建议,或者是一个很好的教程,知道从哪里开始,那将是很好的。 谢谢您的帮助。

1 个答案:

答案 0 :(得分:0)

即使我有同样的问题。 带有ReactJS的Nodejs是一个占用大量内存的应用程序,即使它是一个非常简单的应用程序。

我认为您正在使用gandi nodejs简单托管实例(https://www.gandi.net/en/simple-hosting)来运行您的应用程序。 Gandi nodejs简单托管实例为每个进程提供128MB的RAM。因此您的应用程序将耗尽内存,并显示503错误。

要解决此问题,您需要使用最小内存为1GB的gandi云服务器。要购买甘迪云,请访问此处:https://www.gandi.net/en/cloud

或者,

您可以使用Heroku,namecheap等提供更多RAM。 Gandi简单托管无法正常工作,因为您将耗尽内存。