2016-11-16 42 views
2

我在nodejs中編寫了一個api來查找銷售線索或客戶列表。現在我必須從另一個控制器使用這個api。如何從另一個控制器傳遞查詢參數並從中獲取線索列表。因此將能夠重用代碼。重用Nodejs Api

exports.listofLeads = function (req, res) { 

    var param = req.query.from; var s = "initialSource"; var queryLeads = Customers.find({"attributes": { $size: 0 }} ,{"email":1}); if(! param) { 
    queryLeads.exec(function (err, articles) { 
     if (err) { 
     return res.status(422).send({ 
      message: errorHandler.getErrorMessage(err) 
     }); 
     } else { 
     res.json(articles); 
     } 
    }); } else { 
    queryLeads.and([ { [s]: param } ]).exec(function (err, articles) { 
     if (err) { 
     return res.status(422).send({ 
      message: errorHandler.getErrorMessage(err) 
     }); 
     } else { 
     res.json(articles); 
     } 
    }); 
    } 
}; 

回答

1

使用require(),您可以訪問已寫入該函數的文件。所以在其他api只是調用這個函數,並傳遞參數,就像你在第一個api

+0

使用require(),我能夠訪問函數「listofleads」,但'var param = req.query.from;'拋出錯誤。我在另一個控制器中的代碼是'var customers = require('../ controllers/customers.server.controller'); exports.list = function(req,res){ \t var from = req.query.from; \t console.log(from); \t var x = customers.listofLeads(from); \t console.log(x); };' –

+0

發生此錯誤是因爲listofleads api接受'var param = req.query.from;'但是當通過另一個控制器訪問時,它期望只獲得'var param = req;'。如何使它成爲模塊化的,從而既可以作爲api也可以作爲控制器使用。 –

+1

以使其在exports.listofLeads = function(req,res){}中作爲模塊的一個參數表示標誌like exports.listofLeads = function(req,res,flag){} – AJS