Guest User

Untitled

a guest
Apr 26th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.36 KB | None | 0 0
  1. const jsonServer = require('json-server');
  2. const server = jsonServer.create();
  3. const path = require('path');
  4. const router = jsonServer.router(path.join(__dirname, 'db.json'));
  5. const middlewares = jsonServer.defaults();
  6.  
  7. // define primary key columns for each resource
  8. const primaryKeys = {
  9. "countries": "code",
  10. "towns": "id",
  11. "access-policies": "accessPolicyId",
  12. "device-services": "id"
  13. };
  14.  
  15. const port = 3200;
  16.  
  17. server.use(middlewares);
  18. server.use(router);
  19. server.listen(port, () => {
  20. console.log('Test server is running on port: ' + port)
  21. });
  22.  
  23. router.render = (req, res) => {
  24. const resource = req.path.split('/')[1];
  25. let filteredResponse = res.locals.data;
  26.  
  27. // remapping internal id columns to dedicated resource columns
  28. if (req.method === 'POST' || req.method === 'PUT') {
  29. req.body.id = req.body[primaryKeys[resource]];
  30. } else if (req.method === 'GET') {
  31. filteredResponse = filterResponse(resource, res.locals.data);
  32. }
  33.  
  34. // optional response wrapping to data attribute
  35. res.jsonp({
  36. data: filteredResponse
  37. });
  38. };
  39.  
  40. function filterResponse(resource, response) {
  41. // don't filter if primaryKey is same as internal
  42. if (primaryKeys[resource] === 'id') {
  43. return response;
  44. }
  45.  
  46. if (response instanceof Array) {
  47. for (let i=0;i<response.length;i++) {
  48. delete response[i].id;
  49. }
  50. } else {
  51. delete response.id;
  52. }
  53.  
  54. return response;
  55. }
Add Comment
Please, Sign In to add comment