Advertisement
Guest User

Untitled

a guest
May 2nd, 2016
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.77 KB | None | 0 0
  1. export class Container{
  2. data:string="";
  3. testList:Test[];
  4. }
  5.  
  6. export class Test {
  7. moredata:string="";
  8. fileList:File[];
  9. }
  10.  
  11. export class File {...}
  12.  
  13. /*************** mongoose schemas **************/
  14. // item.js
  15. var mongoose = require('mongoose');
  16. module.exports = mongoose.model('Item', {
  17. Content : {type : Object, default: ''}
  18. });
  19.  
  20. // file.js
  21. var mongoose = require('mongoose');
  22. var Item = require('./item');
  23. var schema = new mongoose.Schema({
  24. Data : {type : String, default: ''},
  25. ItemList: {type: [Item], default:[]}
  26. });
  27.  
  28. // test.js
  29. var mongoose = require('mongoose');
  30. var File = require('./file');
  31.  
  32. var schema = new mongoose.Schema({
  33. Data: {type:String},
  34. FileList: {type:[File], default:[]}
  35. });
  36.  
  37. // container.js
  38. var mongoose = require('mongoose');
  39. var Test = require('./test');
  40. var schema = new mongoose.Schema({
  41. Name : {type : String, default: '', index:true, unique:true, required: true, dropDups:true},
  42. Test : {type:[Test], default:[]}
  43. });
  44.  
  45. /*************** nodejs **************/
  46. app.post('/api/container', bodyParser.urlencoded({extended:true}), bodyParser({limit:'50mb'}), bodyParser.json(), function(req, res) {
  47.  
  48. var test = req.body._test;
  49.  
  50. var testList = [];
  51. var fileList;
  52. var itemList;
  53. var itemObj;
  54. var fileObj;
  55. var testObj;
  56.  
  57. for(var i in test){
  58. fileList = [];
  59.  
  60. for(var j in test[i]._fileList){
  61. itemList = [];
  62.  
  63. for(var k in test[i]._fileList[j]._itemList){
  64. itemObj = new Item({
  65. Content : test[i]._fileList[j]._itemList[k]._content
  66. });
  67. itemList.push(itemObj);
  68. console.log('item pushed : ' + itemObj + ' and length : ' + itemList.length);
  69. // logs gives info OK.
  70. }
  71.  
  72. fileObj = new File({
  73. Data: locales[i]._fileList[j]._data,
  74. ItemList: itemList
  75. });
  76. fileList.push(fileObj);
  77. console.log('file pushed : ' + fileObj);
  78. // logs gives info NOK. The ItemList is empty : [], instead of a 70+ item list.
  79. }
  80. testObj = new Test({
  81. Data: locales[i]._data,
  82. FileList: fileList
  83. });
  84. testList.push(testObj);
  85. console.log('test pushed : ' + i);
  86. // once again, logs are NOK : the FileList is empty : []
  87. }
  88.  
  89. // use mongoose to save the project in the database
  90. new Container({
  91. Name : req.body._name.toLowerCase().trim(),
  92. Test: testList
  93. }).save(function(err, container, count){
  94. if(err){
  95. console.log('erreur : ');
  96. console.log(err);
  97.  
  98. // we enter here as we have this error :
  99. /*
  100. { [CastError: Cast to undefined failed for value "
  101. {
  102. _id: 5727ebf95a76ff0011374928,
  103. FileList: [],
  104. Data: 'data'
  105. },
  106. {
  107. _id: 5727ebf95a76ff0011374970,
  108. FileList: [],
  109. Data: 'other data'
  110. }" at path "Test"]
  111. message: 'Cast to undefined failed for value "
  112. { _id: 5727ebf95a76ff0011374928,n FileList: [],n Data: 'data' },
  113. { _id: 5727ebf95a76ff0011374970,n FileList: [],n Data: 'other data'}"
  114. at path "Test"',
  115. name: 'CastError',
  116. type: undefined,
  117. value: [{"_id":"5727ebf95a76ff0011374928","FileList":[],"Data":"data"},{"_id":"5727ebf95a76ff0
  118. 011374970","FileList":[],"Data":"other data"}],
  119. path: 'Test' }
  120. */
  121.  
  122. res.status(403).json({error: 'error'});
  123. } else {
  124. console.log('saved ! ');
  125. res.json(container);
  126. }
  127. });
  128. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement