Express .map函数不返回值
我在视图文件中有一些jquery,我想要使用名称discoverySource
获取各个字段的所有值。 由于堆栈用户的一些帮助,解决方案是使用lodash
模块,然后将数组映射到单个值,以适合我的sequelize BulkCreate函数。 使用我当前的post设置,.map方法根据填写的字段数量正确地在我的数据库中创建单独的行,但由于某种原因,值未被传递。 我不确定发生这种情况的原因是因为正文解析器值是正确的,并且值正在被设置的变量之外的任何地方正确记录。 我在每个console.log旁边注释,以显示返回的值。 我的问题是我收到了map方法的undefined
和[object Object]
。 网站1,网站2,网站3,是我对这些领域的测试值
这是我的路线:
.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); }); });
这是我的观点:
{{> 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() { $('').appendTo(dataSourceField); i++; return false; }); $('#sign-up-organization-discovery-source').on('click', '.remove', function() { if (i > 1) { $(this).parent('p').remove(); i--; } return false; }); });
使用bulkCreate(),您需要直接传递数组。
models.DiscoverySource.bulkCreate(sources)
模式是:
Model.bulkCreate(
如下所示: http : //sequelize.readthedocs.org/en/latest/api/model/#bulkcreaterecords-options-promisearrayinstance
这个:-
return { discoverySource: source, organizationId: req.body.organizationId };
创建一个具有2个属性的对象, discoverySource
和organizationId
。
所以sources
是一个对象数组。 [object Object],[object Object],[object Object]
这个:-
console.log(sources.discoverySource); //undefined console.log(sources.organizationId); //undefined
undefined
因为您在数组上查找discoverySource
和organizationId
,而不是在数组中的对象上查找。
尝试:-
console.log(sources[0].discoverySource); //discoverySource on 1st object in the array console.log(sources[0].organizationId); //organizationIdon 1st object in the array