58 lines
1.3 KiB
JavaScript
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);
|
|
});
|
|
});
|