gpt4 book ai didi

node.js - 如何在 Gandi(或其他托管公司)上托管 NodeJS ReactJS 应用程序?

转载 作者:太空宇宙 更新时间:2023-11-03 22:22:47 24 4
gpt4 key购买 nike

我第一次不使用 Heroku,但尝试使用 Gandi 托管我的网站(后端使用 Node 和 Express,前端使用 React)。不幸的是,到目前为止我遇到了 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 上运行良好,但我不知道要更改什么才能使其运行
甘地。如果有人能提供一些建议或者一个好的教程来知道从哪里开始那就太好了。感谢您的帮助。

最佳答案

即使我也遇到了同样的问题。Nodejs 与 ReactJS 是内存密集型应用程序,即使它是一个非常简单的应用程序。

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

要解决此问题,您需要使用具有至少 1GB RAM 的 gandi 云服务器。要购买 gandi 云,请访问此处:https://www.gandi.net/en/cloud

或者,

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

关于node.js - 如何在 Gandi(或其他托管公司)上托管 NodeJS ReactJS 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52098556/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com