// 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在服务器部分的话,我怎么做这个部署,有人能澄清我对程序的看法吗?我必须合并这两个文件夹吗?
https://stackoverflow.com/questions/73792353
复制相似问题