La fonction Express .map ne renvoie pas de valeurs

Dans mon fichier de vue, jquery contient des éléments dans lesquels je souhaite utiliser toutes les valeurs des champs individuels avec le nom discoverySource . La solution, grâce à l’aide d’un utilisateur de stack, consistait à utiliser le module lodash , puis à mapper le tableau en valeurs individuelles à utiliser de manière appropriée pour ma fonction BulkCreate séquentielle. Avec ma configuration de publication actuelle, la méthode .map crée correctement des lignes individuelles dans ma firebase database en fonction du nombre de champs renseignés, mais pour une raison quelconque, les valeurs ne sont pas transmises. Je ne suis pas sûr que la raison en soit la cause, car la valeur de l’parsingur de corps est correcte et les valeurs sont correctement journalisées en dehors de la variable définie. J’ai commenté à côté de chaque console.log pour montrer quelles valeurs sont retournées. Mon problème est que je reçois undefined et [object Object] pour la méthode map. Site Web 1, site Web 2, site Web 3, étaient mes valeurs de test pour les champs

Voici mon itinéraire:

 .post(function(req, res){ console.log(req.body.discoverySource); //[ 'Website 1', 'Website 2', 'Website 3' ] var sources = _.map(req.body.discoverySource, function (source) { return { discoverySource: source, organizationId: req.body.organizationId }; }); console.log("These are the" + sources); //These are the[object Object],[object Object],[object Object] console.log(sources.discoverySource); //undefined console.log(sources.organizationId); //undefined models.DiscoverySource.bulkCreate(sources) .then(function(){ return models.DiscoverySource.findAll(); }).then(function(discoverySource){ console.log(discoverySource); res.redirect('/app'); }).catch(function(error){ res.send(error); console.log('Error during Post: ' + error); }); }); 

Voici mon avis:

   {{> head}}   {{> navigation}}   $(function() { var dataSourceField = $('#sign-up-organization-discovery-source'); var i = $('#sign-up-organization-discovery-source p').size(); var sourceCounter = 1; $('#sign-up-add-discovery-source').on('click', function() { $('

Remove

').appendTo(dataSourceField); i++; return false; }); $('#sign-up-organization-discovery-source').on('click', '.remove', function() { if (i > 1) { $(this).parent('p').remove(); i--; } return false; }); });

Avec bulkCreate (), vous devez passer directement le tableau.

 models.DiscoverySource.bulkCreate(sources) 

Le motif est:

 Model.bulkCreate( 

comme documenté ici: http://sequelize.readthedocs.org/fr/latest/api/model/#bulkcreaterecords-options-promisearrayinstance

Ce:-

 return { discoverySource: source, organizationId: req.body.organizationId }; 

crée un object avec 2 propriétés, discoverySource et organizationId .

Donc, sources est un tableau d’objects. [object Object],[object Object],[object Object]

Ce:-

 console.log(sources.discoverySource); //undefined console.log(sources.organizationId); //undefined 

est undefined car vous recherchez discoverySource et organizationId sur le tableau et non sur un object du tableau.

essayer:-

 console.log(sources[0].discoverySource); //discoverySource on 1st object in the array console.log(sources[0].organizationId); //organizationIdon 1st object in the array