zkt26/backend/app.js

58 lines
1.3 KiB
JavaScript

const express = require("express");
const mongoose = require("mongoose");
const multer = require("multer");
const cors = require("cors");
const fs = require("fs");
const app = express();
app.use(express.json());
app.use(cors());
app.use("/uploads", express.static("uploads"));
mongoose.connect("mongodb://mongo:27017/notes");
const Note = mongoose.model("Note", { text: String });
const storage = multer.diskStorage({
destination: "uploads/",
filename: (req, file, cb) => {
cb(null, Date.now() + "-" + file.originalname);
}
});
const upload = multer({ storage });
app.get("/notes", async (req, res) => {
res.json(await Note.find());
});
app.post("/notes", async (req, res) => {
const note = new Note(req.body);
await note.save();
res.json(note);
});
app.post("/upload", upload.single("file"), (req, res) => {
res.json({ message: "Uploaded" });
});
app.listen(3000, () => console.log("Backend running"));
app.get("/", (req, res) => {
res.send("Backend is running");
});
app.delete("/notes/:id", async (req, res) => {
await Note.findByIdAndDelete(req.params.id);
res.json({ message: "Deleted" });
});
app.get("/files", (req, res) => {
fs.readdir("uploads/", (err, files) => {
if (err) return res.status(500).send("Error");
res.json(files);
});
});