2015-06-13 37 views
1

我有一个流星方法,我只在server文件夹中定义。要求没有在服务器端Meteor方法中定义?

服务器/ methods.js

Meteor.methods({ 

    locationInfoByZipcode: function(zipcode){ 

     check(zipcode, String); 
     var https = require('https'); 

    }, 
}); 

我把它叫做客户端上:

Meteor.call("locationInfoByZipcode", "94043", function(error, response){ 
    console.log(error); 
    console.log(response); 
}); 

这是在服务器控制台错误:

I20150612-19:48:28.092(-7)? Exception while invoking method 'locationInfoByZipcode' ReferenceError: require is not defined 
I20150612-19:48:28.092(-7)?  at [object Object].Meteor.methods.locationInfoByZipcode (app/server/meteor_methods.js:109:15) 
I20150612-19:48:28.092(-7)?  at maybeAuditArgumentChecks (packages/ddp/livedata_server.js:1617:1) 
I20150612-19:48:28.092(-7)?  at packages/ddp/livedata_server.js:648:1 
I20150612-19:48:28.092(-7)?  at [object Object]._.extend.withValue (packages/meteor/dynamics_nodejs.js:56:1) 
I20150612-19:48:28.093(-7)?  at packages/ddp/livedata_server.js:647:1 
I20150612-19:48:28.094(-7)?  at [object Object]._.extend.withValue (packages/meteor/dynamics_nodejs.js:56:1) 
I20150612-19:48:28.094(-7)?  at [object Object]._.extend.protocol_handlers.method (packages/ddp/livedata_server.js:646:1) 
I20150612-19:48:28.094(-7)?  at packages/ddp/livedata_server.js:546:1 

唔。 ..不知道为什么会发生这种情况。如果我打开一个流星壳我可以控制日志require就好。

+1

你想做什么?为什么不使用HTTPS对象?如果您必须包含npm包,那么请查找关于如何在流星中需要npm包(即使用npm包)的百万和一个问题。 –

+0

我认为require的代码比直接使用HTTPS对象读取和写入要干净得多。但是,是的,我只是谷歌搜索,结果我需要使用npm气氛包。呸。 – fuzzybabybunny

回答

1

如果从节点核心指HTTPS,您可以用流星需要它:

var https = Npm.require('https'); 

,而无需安装任何额外的软件包。节点核心中的任何模块都可以在服务器上以这种方式要求。

+0

我对Meteor很生气,因为这样做。有时你需要一个本地文件,而不是NPM包。 – Andy

相关问题