第一次,我不使用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上效果很好,但是我不知道要进行哪些更改才能使其在
甘地如果有人提供一些建议,或者是一个很好的教程,知道从哪里开始,那将是很好的。
谢谢您的帮助。
最佳答案
即使我也有同样的问题。
带有ReactJS的Nodejs是一个占用大量内存的应用程序,即使它是一个非常简单的应用程序。
我认为您正在使用gandi nodejs简单托管实例(https://www.gandi.net/en/simple-hosting)运行您的应用程序。 Gandi nodejs简单托管实例为每个进程提供128MB的RAM。因此,您的应用程序将耗尽内存,并显示503错误。
为了解决这个问题,您需要使用具有至少1GB RAM的gandi云服务器。要购买甘迪云,请访问此处:https://www.gandi.net/en/cloud
或者,
您可以使用Heroku,namecheap等提供更多RAM。 Gandi简单托管将无法正常工作,因为您将耗尽内存。