-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathserver.js
More file actions
36 lines (30 loc) · 950 Bytes
/
server.js
File metadata and controls
36 lines (30 loc) · 950 Bytes
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
const jsonServer = require('json-server')
const clone = require('clone')
const data = require('./db.json')
const cors = require('cors');
const middlewares = jsonServer.defaults()
const isProductionEnv = process.env.NODE_ENV === 'production';
const server = jsonServer.create()
server.use(cors({
origin: '*',
}));
server.use((req, res, next) => {
res.set("Cross-Origin-Resource-Policy", "cross-origin");
next();
});
server.use(middlewares)
// For mocking the POST request, POST request won't make any changes to the DB in production environment
const router = jsonServer.router(isProductionEnv ? clone(data) : 'db.json', {
_isFake: isProductionEnv
})
server.use((req, res, next) => {
if (req.path !== '/')
router.db.setState(clone(data))
next()
})
server.use(router)
server.listen(process.env.PORT || 8000, () => {
console.log('JSON Server is running')
})
// Export the Server API
module.exports = server