2014-02-14 178 views
0

我在我的流星應用程序中使用nodejs,並使用mrt add npm添加了包,然後在我的客戶目錄packages.json中添加了skimlinksjs及其版本,並將其添加到我的應用中。模塊未定義錯誤

當我想在我這樣的服務器端代碼的應用程序使用它們,

var res; 
var skim = Meteor.require('skimlinksjs'); 
var apili = Meteor.require('/config.js'); 
skim.setup(apili.key); 
skim.query({ 
    searchFor: "title:\"moto g\"", 
    fq: "country:US" 
    }, function(err,data) { 
    res=data.skimlinksProductAPI.numFound; 
    } 
); 
return res; 

和我config.js文件是這樣的

module.exports = { 
    key: "xxxxxxx" 
} 

whenI'm運行此應用程序是顯示錯誤,如

module not defined 

我的代碼出了什麼問題,或者是否有任何需要安裝其他包?

+0

不''/ config.js'是否意味着該文件位於驅動器的根目錄中?你可能是指'./config.js',不是? –

+0

我也試過。但它不起作用。 – Sasikanth

+0

哦,您可能錯過的另一件事是流星不會在您可能想到的目錄中運行節點。打印'process.env ['PWD']',你會看到。有關於這裏經常出現的問題 –

回答

0

我剛剛得到了答案

寫此功能在服務器端代碼

function returnAllResult() 
{ 
    var skimlinks = Meteor.require('skimlinksjs'); 
    skimlinks.setup("xxx"); 
    var skimlinks_query = Async.wrap(skimlinks.query); 
    var result = skimlinks_query({ 
     searchFor: "title:\"moto g\"", 
     fq: "country:US", 
     rows:5 
    }); 
    return result; 
} 

瞭解異步函數看this

,然後在我的服務器端方法調用此

apiresult:function() 
{  
    var response = returnAllResult(); 
    return response.skimlinksProductAPI.products[0].merchant; 
} 

這就是它工作正常現在。希望這可以幫助別人

+0

您在服務器上出現異步問題。在流星上,你可以使用光纖。這是標準的Meteor方式。 – nalply

相關問題