在Meteor中调用NodeJS模块或者自己的模块

来源:互联网 发布:淘宝职业骗保师现状 编辑:程序博客网 时间:2024/05/16 12:52

基于NodeJS的Meteor框架,国内使用的还比较少,遇到问题 很麻烦 难以在国内找到答案,本篇文章通过 http://stackoverflow.com/questions/tagged/meteor 找到资料总结而成。

尊重劳动成果 转载请注明。

在Meteor中,创建一个应用后 ,不能直接应用根目录下 写nodeJS应用中那样的模块。如

新建一个文件interface.js 

exports.hello = function(){  console.log("Hello");}

然后运行应用会报错。原因大概是因为Meteor封装了底层nodejs,无法直接使用nodejs的语法如exports,require等。


需要使用nodejs的模块

在Meteor 这样获取require

if (Meteor.isServer) {  Meteor.startup(function () {    // code to run on server at startup    var require = __meteor_bootstrap__.require;    var fs = require('fs');    var url = require('url');    //url.parse(..)  do something    .....  });}

如果是自己的模块,则需要这样做(我不知道其他的方法了,需要更简单的方法 可以上 http://stackoverflow.com 寻找)

建立自己的包

例子:

创建一个文件夹  somepackage

在 somepackage 中创建一个 lib文件夹

在somepackage中创建一个package.json文件

lib文件下创建一个interface.js文件

这里就可以写 普通NodeJS的函数文件了,这里写段简单的代码

exports.hello = function(){  console.log("Hello");}


package.json中的内容:

{"main":"./lib/interface.js"}
(关于包的创建 具体规范 可以google 'CommonJS',这里的package.json简洁  只为了方便而已)

复制somepackage 文件夹到 /usr/lib/meteor/lib/node_modules文件夹下(这里是Ubuntu的系统为例,Windows请自行砸umeteor安装目录下查找相对应文件夹)


然后在Meteor中这样使用

if (Meteor.isServer) {  Meteor.startup(function () {    // code to run on server at startup    var require = __meteor_bootstrap__.require;    var somepackage = require('somepackage');    somepackage.hello();  });}


启动Meteor应用,可以在终端看到运行结果。



原创粉丝点击