|
1 | 1 | const express = require("express"); |
2 | | -const mongoose = require("mongoose"); |
3 | | -require("dotenv").config(); |
4 | 2 | const cors = require("cors"); |
5 | 3 | const usersRouter = require("./routes/users.js"); |
6 | 4 | const expensesRouter = require("./routes/expenses.js"); |
7 | 5 | const debtsRouter = require("./routes/debts.js"); |
8 | 6 | const { errorHandler } = require("./middleware/errors"); |
9 | 7 |
|
10 | | -const app = express(); |
11 | | -app.use(express.json()); |
12 | | -app.use( |
13 | | - cors({ |
14 | | - origin: "http://localhost:3000", |
15 | | - }), |
16 | | -); |
17 | | -app.use(usersRouter); |
18 | | -app.use(expensesRouter); |
19 | | -app.use(debtsRouter); |
20 | | -app.use(errorHandler); |
| 8 | +function createApp({ corsOrigin = "http://localhost:3000" } = {}) { |
| 9 | + const app = express(); |
| 10 | + app.use(express.json()); |
| 11 | + app.use( |
| 12 | + cors({ |
| 13 | + origin: corsOrigin, |
| 14 | + }), |
| 15 | + ); |
| 16 | + app.use(usersRouter); |
| 17 | + app.use(expensesRouter); |
| 18 | + app.use(debtsRouter); |
| 19 | + app.use(errorHandler); |
| 20 | + return app; |
| 21 | +} |
21 | 22 |
|
22 | | -// !IMPORTANT: Create .env file with password |
23 | | -const password = process.env.PASSWORD || "changePasswordHere"; |
24 | | -let devUrl = `mongodb+srv://admin:${password}@fairsplit.fjvgxmg.mongodb.net/?retryWrites=true&w=majority`; |
25 | | -const mongoDB = process.env.MONGODB_URI || devUrl; |
26 | | -// Set up the Mongoose connection. |
27 | | -mongoose |
28 | | - .connect(mongoDB) |
29 | | - .catch((error) => console.error("MongoDB connection error:", error)); |
30 | | -let db = mongoose.connection; |
31 | | - |
32 | | -// Bind the connection to an error event to get notification of connection |
33 | | -// errors. |
34 | | -db.on("error", console.error.bind(console, "MongoDB connection error:")); |
35 | | -// Displays a success message when the connection is successfully made. |
36 | | -db.once("open", function () { |
37 | | - console.log("Connected successfully."); |
38 | | -}); |
39 | | - |
40 | | -// Set up the port to listen on. |
41 | | -const port = process.env.PORT || 3001; |
42 | | -app.listen(port, () => { |
43 | | - console.log(`Server is running at port ${port}.`); |
44 | | -}); |
45 | | - |
46 | | -module.exports = app; |
| 23 | +module.exports = { createApp }; |
0 commit comments