2014-02-14 180 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

相关问题