-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathserver.js
More file actions
62 lines (52 loc) · 1.66 KB
/
server.js
File metadata and controls
62 lines (52 loc) · 1.66 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
const express = require("express");
const fileUpload = require("express-fileupload");
const specimensRouter = require("./routes/specimens.js");
const authRouter = require("./routes/auth.js");
const usersRouter = require("./routes/users.js");
const mongoose = require("mongoose");
const cors = require("cors");
const dotenv = require("dotenv");
require("dotenv").config();
dotenv.config(); // load environment variables
const app = express();
const PORT = process.env.PORT || 8080;
//allow cross origin script requests for all routes (for development purposes)
app.use(
cors({
origin: "*",
})
);
// middleware: log requests to the console
app.use((req, res, next) => {
console.log(req.path, req.method);
next();
});
app.use(express.json());
app.use(fileUpload({ useTempFiles: true }));
// app.use(fileUpload({ useTempFiles: true })); // Enable file uploads
// TODO: host any and all images and svg via cloudinary
// serve the uploads folder statically at /uploads
// app.use("/uploads", express.static("../uploads"));
// serve the svg folder statically at /svg
// app.use("/svg", express.static("../svg"));
// base route - simple status message
app.get("/", (req, res) => {
res.send("Server is running");
});
// routes
app.use("/api/specimens", specimensRouter);
app.use("/api", authRouter);
app.use("/api/users", usersRouter);
// connect to db
mongoose
.connect(process.env.MONGO_URI)
.then(() => {
// listen for requests
app.listen(PORT, () => {
console.log("MongoDB connected successfully!");
console.log(`listening on port ${PORT}`);
});
})
.catch((error) => {
console.error(error);
});