Я пытаюсь развернуть мое приложение, которое использует node.js, реагирует и MongoDB на Heroku;Развертывание прошло успешно;Тем не менее, веб-сайт не может получать данные из MongoDB. Ошибка GET http://localhost:5000/comment net::ERR_CONNECTION_REFUSED
и Uncaught (in promise) Error: Network Error
, я думаю, это потому, что у меня не работает node server.js
в бэкэнде. Может кто-нибудь помочь мне с тем, как правильно развернуть это? мой pakage.json в бэкэнде -
"client-install": "npm install --prefix myprofile",
"start":"node server.js",
"server":"nodemon server.js",
"client":"npm start --prefix myprofile",
"dev":"concurrently \"npm run server\" \"npm run client\"",
"heroku-postbuild":"NPM_CONFIG_PRODUCTION=false npm install --prefix myprofile && npm run build --prefix myprofile"
}
А мой server.js -
const express = require("express");
const cors = require("cors");
const mongoose = require("mongoose");
const path = require("path");
require("dotenv").config();
const app = express();
const port = process.env.PORT || 5000;
app.use(express.json());
app.use(cors());
//app.use(express.static(path.join(__dirname,'./myprofile/build')));
const uri = process.env.ATLAS_URI;
mongoose.connect(uri, {
useNewUrlParser: true,
useCreateIndex: true,
useUnifiedTopology: true
});
const connection = mongoose.connection;
connection.once("open", () => {
console.log("MongoDB data connected");
});
const CommentRouter = require("./CommentRouter");
app.use("/comment", CommentRouter);
if (process.env.NODE_ENV === "production") {
app.use(express.static("myprofile/build"));
app.get("*", (req, res) => {
res.sendFile(path.resolve(__dirname, "myprofile", "build", "index.html"));
});
}
app.listen(port, () => console.log(`Server is running on ${port}`));
Заранее большое спасибо!