首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mern堆栈部署

Mern堆栈部署
EN

Stack Overflow用户
提问于 2022-09-20 20:34:17
回答 1查看 63关注 0票数 0

代码语言:javascript
复制
// this is my index.js pubblished on vercel

if (process.env.NODE_ENV !== 'production') {
  require('dotenv').config({path: __dirname+'/.env'});
}
const express = require("express");
const multer = require("multer");
const mongoose = require("mongoose");
const dotenv = require("dotenv");
const authRoute = require("./routes/auth");
const userRoute = require("./routes/users");
const postRoute = require("./routes/posts");
const categoryRoute = require("./routes/categories");
const path = require("path");

const app = express();
dotenv.config();

mongoose
  .connect(process.env.MONGO_URL, {
    useNewUrlParser: true,
    useUnifiedTopology: false,
  })
  .then(() => {
    console.log("MongoDB connected!");
  })
  .catch((err) => {
    console.log(err);
  });

app.use(express.json());

app.use("/images", express.static(path.join(__dirname, "/images")));

const storage = multer.diskStorage({
  destination: (req, file, cb) => {
    cb(null, "images");
  },
  filename: (req, file, cb) => {
    cb(null, req.body.name);
  },
});

const upload = multer({ storage: storage });
app.post("/api/upload", upload.single("file"), (req, res) => {
  res.status(200).json("File has been uploaded");
});
//endpoints
app.use("/api/auth", authRoute);
app.use("/api/users", userRoute);
app.use("/api/posts", postRoute);
app.use("/api/categories", categoryRoute);

app.get('/', (req,res)=>{
  res.json({
    "ciao":"io sono il backend",
  });
});

// static files (build of your frontend)
if (process.env.NODE_ENV === 'production') {
  app.use(express.static(path.join(__dirname, '../frontend', 'build')));
  app.get('/*', (req, res) => {
    res.sendFile(path.join(__dirname, '../frontend', 'build', 'index.html'));
  })
}

app.listen(process.env.PORT || 5000, () => {
  console.log("Listening at port 5000");
});

我创建了一个包含两个文件夹的Mern博客:一个客户端(前端部分)和api (后端部分)。我想在一个免费的主机上分发,但我不想使用Heroku,因为11月22日以后它将被支付,如果没有Heroku在服务器部分的话,我怎么做这个部署,有人能澄清我对程序的看法吗?我必须合并这两个文件夹吗?

EN

回答 1

Stack Overflow用户

发布于 2022-09-21 02:28:21

我建议您在维塞尔中部署服务器,在网易上部署客户端,这两者都是免费的,适合于免费的MERN部署。要在vercel和nelify上进行部署很简单,只需将您的github回购项目连接到vercel和netlify,如果您正在推动回购github,则会在部署时自动更新。不需要合并两个文件夹。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73792353

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档