Meteor / node-gd&ReferenceError:require没有被定义

我有一些关于node-gd和Meteor的相关问题。

首先几个问题。 我试过在我认为是正确的地方安装node-gd 。

这看起来像我已经安装到正确的位置用于meteor?

我应该担心输出中的警告吗?

me@ubuntu:/usr/local/lib$ sudo npm install node-gd npm http GET https://registry.npmjs.org/node-gd npm http 304 https://registry.npmjs.org/node-gd > node-gd@0.2.3 install /usr/local/lib/node_modules/node-gd > node-gyp rebuild make: Entering directory `/usr/local/lib/node_modules/node-gd/build' CXX(target) Release/obj.target/node_gd/cpp/node-gd.o ../cpp/node-gd.cpp: In static member function 'static v8::Handle<v8::Value> Gd::Image::StringFTBBox(const v8::Arguments&)': ../cpp/node-gd.cpp:1045:22: warning: variable 'color' set but not used [-Wunused-but-set-variable] REQ_INT_ARG(0, color); ^ ../cpp/node-gd.cpp:41:7: note: in definition of macro 'REQ_INT_ARG' int VAR; \ ^ SOLINK_MODULE(target) Release/obj.target/node_gd.node SOLINK_MODULE(target) Release/obj.target/node_gd.node: Finished COPY Release/node_gd.node make: Leaving directory `/usr/local/lib/node_modules/node-gd/build' node-gd@0.2.3 node_modules/node-gd me@ubuntu:/usr/local/lib$ ls node_modules python2.7 python3.4 me@ubuntu:/usr/local/lib$ cd node_modules/ me@ubuntu:/usr/local/lib/node_modules$ ls meteorite node-gd 

我传递坐标回到服务器,我想要使用node-gd操纵服务器上的图像。

这是我的meteor方法:

 Meteor.methods({ createImage: function(coords) { console.log('createImage') console.log(coords.x); var gd = require('gd'); } }); 

当我尝试运行这个function时,我在terminal上得到了这个:

 I20140826-06:44:18.166(-7)? Exception while invoking method 'createImage' ReferenceError: require is not defined I20140826-06:44:18.166(-7)? at Meteor.methods.createImage (app/server/server.js:7:15) I20140826-06:44:18.167(-7)? at maybeAuditArgumentChecks (packages/livedata/livedata_server.js:1487) I20140826-06:44:18.167(-7)? at packages/livedata/livedata_server.js:643 I20140826-06:44:18.168(-7)? at _.extend.withValue (packages/meteor/dynamics_nodejs.js:56) I20140826-06:44:18.168(-7)? at packages/livedata/livedata_server.js:642 I20140826-06:44:18.168(-7)? at _.extend.withValue (packages/meteor/dynamics_nodejs.js:56) I20140826-06:44:18.168(-7)? at _.extend.protocol_handlers.method (packages/livedata/livedata_server.js:641) I20140826-06:44:18.168(-7)? at packages/livedata/livedata_server.js:541 

这个问题的答案build议各种JS解决scheme。 这是我所需要的,任何人都可以推荐什么是最好的服务器和客户端使用meteor?

你不能通过这种方式添加NPM模块到meteor,你应该使用来自meteorhacks的npm气氛包: http ://atmospherejs.com/package/npm

你需要做的是通过陨石安装包:

 mrt add npm 

然后在项目根目录中添加一个packages.json并指定node-gd依赖项:

 { "node-gd":"0.2.3" } 

最后,在你的服务器代码中使用Meteor.require来访问node-gd API。

请注意,尽pipeMeteor服务器端编程使用Fibers所以您必须使用Meteor._wrapAsync或npm atmosphere包Meteor._wrapAsync的一组Async utilities将asynchronousAPI调用包装到node-gd

这里是一个很好的文章,了解这一点: https : //www.discovermeteor.com/blog/understanding-sync-async-javascript-node/

您不能在客户端上使用NPM软件包。

尝试使用Meteor.npmRequire('你的模块名称')