Guest User

Untitled

a guest
Nov 23rd, 2017
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.19 KB | None | 0 0
  1. ### db/config.js
  2. ```
  3. module.exports = {
  4. "username": "postgres",
  5. "password": "password",
  6. "database": "diary",
  7. "dialect": "postgres",
  8. "protocol": "postgres",
  9. "port": 5432,
  10. "host": "127.0.0.1",
  11. };
  12. ```
  13.  
  14. ### db/index.js
  15. ```
  16. const Sequelize = require('sequelize');
  17. const config = require('./config');
  18.  
  19. const sequelize = new Sequelize(
  20. config.database, config.username, config.password, config
  21. );
  22.  
  23. sequelize
  24. .authenticate()
  25. .then(() => {
  26. console.log('Connection to database has been established successfully.');
  27. })
  28. .catch(err => {
  29. console.error('Unable to connect to the database:', err);
  30. });
  31.  
  32. module.exports = {sequelize};
  33. ```
  34.  
  35. ### db/models/student.js
  36. ```
  37. module.exports = (sequelize, DataTypes) => {
  38. const Student = sequelize.define('Student', {
  39. name:{
  40. type: DataTypes.STRING,
  41. allowNull: false,
  42. }
  43. });
  44.  
  45. Student.associate = (models) => {
  46. Student.belongsTo(models.Group, {
  47. foreignKey: 'group_id',
  48. as: 'group'
  49. });
  50. };
  51.  
  52. return Student;
  53. };
  54. ```
  55.  
  56. ### db/models/group.js
  57. ```
  58. module.exports = (sequelize, DataTypes) => {
  59. const Group = sequelize.define('Group', {
  60. name: {
  61. type: DataTypes.STRING,
  62. allowNull: false,
  63. unique: true
  64. }
  65. });
  66.  
  67. Group.associate = (models) => {
  68. Group.hasMany(models.Student, {
  69. foreignKey: 'group_id',
  70. as: 'students',
  71. });
  72. };
  73.  
  74. return Group;
  75. };
  76. ```
  77.  
  78. ### db/models/index.js
  79. ```
  80. const {sequelize} = require('./../index');
  81. const models = [
  82. sequelize.import('./student'),
  83. sequelize.import('./group')
  84. ];
  85.  
  86. module.exports = initModels(sequelize);
  87.  
  88. function initModels(sequelize) {
  89. const result = {};
  90. models.forEach((model) => {
  91. result[model.name] = model;
  92. });
  93.  
  94. Object.keys(result).forEach((modelName) => {
  95. if (result[modelName].associate) {
  96. result[modelName].associate(result);
  97. }
  98. });
  99.  
  100. sequelize.sync();
  101.  
  102. return result;
  103. }
  104. ```
  105.  
  106. ### Then you can import models in your app like this:
  107. ```
  108. const Group = require('./db/models/index').Group;
  109. const Student = require('./db/models/index').Student;
  110. ```
Add Comment
Please, Sign In to add comment