Guest User

Untitled

a guest
Dec 7th, 2018
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.67 KB | None | 0 0
  1. const express = require('express');
  2. const cors = require('cors');
  3. const bodyParser = require('body-parser');
  4. const {
  5. connect, syncDb, buildAndRegisterModel, setupAssociations, mapException, mapQueryParams
  6. } = require('serve-sequelize');
  7.  
  8. const app = express();
  9.  
  10. const sequelize = connect({
  11. database: "app",
  12. username: "user",
  13. password: "secret",
  14. host: "127.0.0.1",
  15. dialect: "postgres",
  16. });
  17. syncDb(sequelize);
  18.  
  19. const listResource = {
  20. name: 'List',
  21. path: '/lists',
  22. schema: {
  23. name: {
  24. type: 'string',
  25. allowNull: false,
  26. validate: {
  27. matches: ["^[a-z0-9 -_]+$",'i'],
  28. len: [3, 80],
  29. },
  30. },
  31. },
  32. associations: {
  33. hasMany: [{
  34. resource: 'Todo',
  35. }],
  36. },
  37. operations: ['get', 'post', 'put', 'patch', 'delete'],
  38. };
  39. const listModel = buildAndRegisterModel(listResource, sequelize);
  40.  
  41. const todoResource = {
  42. name: 'Todo',
  43. path: '/todos',
  44. schema: {
  45. title: {
  46. type: 'string',
  47. allowNull: false,
  48. validate: {
  49. is: ["^[a-zA-Z0-9]+$",'i'],
  50. len: [2, 500],
  51. },
  52. },
  53. completed: {
  54. type: 'boolean',
  55. allowNull: true,
  56. },
  57. },
  58. associations: {
  59. belongsTo: [{
  60. resource: 'List'
  61. }],
  62. },
  63. operations: ['get', 'post', 'put', 'patch', 'delete'],
  64. };
  65. const todoModel = buildAndRegisterModel(todoResource, sequelize);
  66.  
  67. setupAssociations([listResource, todoResource], sequelize);
  68.  
  69. app.use(bodyParser.json())
  70. app.use('*', cors({
  71. origin: (origin, callback) => callback(null, true)
  72. }))
  73. app.use(mapQueryParams)
  74.  
  75. app.resource(todoResource, sequelize)
  76. app.resource(listResource, sequelize)
  77.  
  78. app.use(mapException)
  79.  
  80. app.listen(3000, () => {
  81. console.log('Example app listening on port 3000!')
  82. })
Add Comment
Please, Sign In to add comment