Guest User

Untitled

a guest
Mar 16th, 2018
264
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.04 KB | None | 0 0
  1. require('dotenv').config()
  2. const mongoose = require('mongoose')
  3. const faker = require('faker')
  4. const UserModel = require('./models/user')
  5. const PostModel = require('./models/post')
  6.  
  7. mongoose.connection.openUri(process.env.MONGODB_CONN_STRING, {
  8. useMongoClient: true,
  9. })
  10. mongoose.Promise = global.Promise
  11.  
  12. let exactUser = [
  13. UserModel.create({
  14. name: 'Fajar Patappari',
  15. email: 'top.sick.red@gmail.com',
  16. password: '1234',
  17. }),
  18. UserModel.create({
  19. name: 'Agum',
  20. email: 'agum@gmail.com',
  21. password: '1234',
  22. }),
  23. ]
  24. function rb(min, max) {
  25. return Math.floor(Math.random() * (max - min + 1) + min)
  26. }
  27.  
  28. function createUsers(howMuch = 5){
  29. let users = exactUser
  30. for (let i = 0; i < howMuch; i++) {
  31. let user = UserModel.create({
  32. name: faker.name.findName(),
  33. email: faker.internet.email().toLowerCase(),
  34. password: '1234',
  35. })
  36. users.push(user)
  37. }
  38. return Promise.all(users)
  39. }
  40.  
  41. function randomParagraphs() {
  42. return Array.apply(null, Array(rb(1, 5))).map((x) => {
  43. return `<p>${faker.lorem.paragraph()}</p>`
  44. }).join('')
  45. }
  46.  
  47.  
  48. function createPosts(users) {
  49. let posts = []
  50. for (const user of users) {
  51. for (let i = 0; i < 5; i++) {
  52. let post = PostModel.create({
  53. creator: user._id,
  54. title : faker.lorem.sentence().split('.').join(''),
  55. imageUrl : faker.random.image(),
  56. article : randomParagraphs(),
  57. })
  58. posts.push(post)
  59. }
  60. }
  61.  
  62. return Promise.all(posts)
  63. }
  64.  
  65. function up(){
  66. createUsers()
  67. .then(users => createPosts(users))
  68. .then(posts => {
  69. console.log(posts[0])
  70. console.log(posts[1])
  71. process.exit()
  72. })
  73. .catch(console.log)
  74. }
  75.  
  76. function down() {
  77. console.log('Deleting Database');
  78. Promise.all([
  79. UserModel.remove({}),
  80. PostModel.remove({})
  81. ])
  82. .then((res)=> {
  83. console.log('Delete Database Success')
  84. process.exit()
  85. })
  86. .catch(console.log)
  87. }
  88.  
  89. let cmd = process.argv[2]
  90.  
  91. if (cmd == 'down'){
  92. down()
  93. }else if(cmd == 'up'){
  94. up()
  95. }else{
  96. console.log('no argument. option is "node seeder up" or "node seeder down"')
  97. process.exit()
  98. }
Add Comment
Please, Sign In to add comment