在Nodejs中结合复杂的filter范围

在Magento 1.8 SOAP APIv2,我正在寻找一种方法来获取date范围从SOAP API检索信息。 我已经咨询了从stackoverflow本身的查询,即组合复杂的filter的范围 。 需要在我的节点项目中应用相同types的复杂filter。 确定使用magento节点封装,即https://github.com/MadisonReed/magentoapi

exports.find = function (req, res) { async.waterfall([ function (done) { magento.login(function(err, sessId) { if (err) { // deal with error console.log('login error:' + err); return; } done(err, done); // http://localhost/api/rest/customers }); }, function (filteredCustomer, done) { var attributes = []; var filteredCustomer = []; magento.customer.list({filters: [ ]},function(err, customerCollection) { _.forEach(customerCollection, function(customer, key) { var attributes = _.pick(customer, [ 'customer_id', 'created_at', 'updated_at', 'firstname', 'lastname', 'gender', 'credit_value', 'customer_referral_code', ]); var customerDocument = { 'email': customer.email, 'number': customer.contact_no, 'created_at': Date.now(), 'initialSource': 'magento', 'attributes': attributes }; filteredCustomer.push(customerDocument); }); done(filteredCustomer); }); }, function (filteredCustomer, done) { console.log(filteredCustomer); if(!err){ done(filteredCustomer); } } ], function (err) { if (err) { console.log(err); } }); }; 

输出:

 [ { email: 'rht.rai2@gmail.com', number: '1313543132', created_at: 1478785224233, initialSource: 'magento', attributes: { customer_id: '1', created_at: '2016-03-10 04:39:16', updated_at: '2016-10-03 10:09:21', firstname: 'rohit', lastname: 'Rai', gender: '1', credit_value: '0.0000', customer_referral_code: 'dS518' } }, { email: 'rajveer@gmailj.com', number: '9088694978', created_at: 1478785224233, initialSource: 'magento', attributes: { customer_id: '2', created_at: '2016-04-10 23:52:05', updated_at: '2016-11-04 05:22:09', firstname: 'rajveer', gender: '1', credit_value: '0.0000', customer_referral_code: 'Cw624' } }, { email: 'rohit@happilyunmarried.com', number: '1321321231', created_at: 1478785224233, initialSource: 'magento', attributes: { customer_id: '3', created_at: '2016-07-11 05:00:55', updated_at: '2016-11-07 10:03:54', firstname: 'rohit', gender: '1', credit_value: '0.0000', customer_referral_code: 'aj318' } } ] 

我想出了在magento中发送数据的方式,并在Node中获得了所需的结果。 其工作顺利。 希望能帮助到你。

 'use strict'; /** * Module dependencies. */ var path = require('path'), mongoose = require('mongoose'), errorHandler = require(path.resolve('./modules/core/server/controllers/errors.server.controller')), _ = require('lodash'), Customers = mongoose.model('Customers'), async = require('async'), moment = require('moment'); var MagentoAPI = require('magento'); var magento = new MagentoAPI({ host: 'localhost', port: 80, path: '/happilyustraa/api/xmlrpc/', login: 'rhtrai', pass: 'rohitisla' }); exports.find = function (req, res) { async.waterfall([ function (done) { magento.login(function(err, sessId) { if (err) { // deal with error console.log('login error:' + err); return; } done(err, done); // http://localhost/api/rest/customers }); }, function (filteredCustomer, done) { var attributes = []; var filteredCustomer = []; magento.customer.list({filters: {"CREATED_AT": {'from': "2016-03-10 04:39:16"}, "created_at":{ 'to': "2016-04-10 23:52:05"} } },function(err, customerCollection) { _.forEach(customerCollection, function(customer, key) { // var attributes = _.pick(customer, [ // 'customer_id', // 'created_at', // 'updated_at', // 'firstname', // 'lastname', // 'gender', // 'credit_value', // 'customer_referral_code', // ]); // var customerDocument = { // 'email': customer.email, // 'number': customer.contact_no, // 'created_at': Date.now(), // 'initialSource': 'magento', // 'attributes': attributes // }; // filteredCustomer.push(customerDocument); console.log(customer); }); done(filteredCustomer); }); }, function (filteredCustomer, done) { // console.log(filteredCustomer); if(!err){ done(filteredCustomer); } } ], function (err) { if (err) { console.log(err); } }); }; 
Interesting Posts