在SailsJS中从同一服务访问服务的导出功能

时间:2016-03-09 07:55:14

标签: sails.js

我已将一个服务作为getProdDetailsBatch导出,另一个作为createNewCartMysql导出到同一个文件MySQLService.js中。以下是相同的定义。

exports.getProdDetailsBatch = function(prod_list, city_id){
   var defer = sails.Q.defer();
//Process Request
   return defer.promise;
}


exports.createNewCartMysql = function(product_id, qty, cart_type_id, member_id, visitor_id, city_id){
   var defer = sails.Q.defer();
//Process Request

   getProdDetailsBatch([], 1).then(function(){

   })

   return defer.promise;
}

虽然我能够从不同文件和控制器中的所有其他服务使用服务getProdDetailsBatch,但不能在同一文件中定义createNewCartMysql。

有人会知道如何访问它。

3 个答案:

答案 0 :(得分:1)

你应该尝试:

module.exports = {
  getProdDetailsBatch: function(){
    ...
  },
  createNewCartMysql: function(){
    ...
  }
}

答案 1 :(得分:0)

实际上经过一些随机试验后才开始工作:

exports.<name of the function>

以上是全球可访问的。

答案 2 :(得分:0)

如果用 module.exports 替换 exports ,这也会顺利进行。 例如:

module.exports.getProdDetailsBatch = function(prod_list, city_id){
   var defer = sails.Q.defer();
//Process Request
   return defer.promise;
};


module.exports.createNewCartMysql = function(product_id, qty, cart_type_id, member_id, visitor_id, city_id){
   var defer = sails.Q.defer();
//Process Request

   getProdDetailsBatch([], 1).then(function(){

   })

   return defer.promise;
}