如何复用node.js包或代码

JavaScript020

如何复用node.js包或代码,第1张

Meteor基于Node.js,但是却有自己的包管理系统(atmosphere)以及代码加载机制,且meteor是非异步的,这些都意味着,node.js包(npm package)和代码通常不能直接用于meteor程序。

这里分享三种方法以在meteor中复用node.js包和代码。

meteorhacks:npm + meteorhacks:async

npm+async是复用npm包最便捷的方式。meteor程序添加npm包之后,便可以在packages.json中声明包依赖,在程序中通过Meteor.npmRequire来加载包。

值得一提的是,由于大部分npm包都是异步调用的,而meteor是同步运行的,所以需要某种方法将异步调用转为同步调用。async就是这样一个meteor包,添加之后,通过Async.runSync方法便可以同步地调用异步方法。

具体安装、使用方法以及更多介绍,请参考文档。

适配node.js代码

如果需要复用的代码仅仅是个别文件、函数、片段等,可以手工修改代码以适配meteor程序。

需要注意到,node.js的每一个文件都是一个模块,通过module.exports和require进行组织,但是在meteor中,每一个文件都是会被自动加载的(具体顺序参考meteor文档),通过全局变量进行跨文件调用;meteor中不能直接加载npm包;meteor框架是同步运行的(非异步)。

综上,适配代码的工作包括:

使用meteorhacks:npm来加载npm包

修改跨文件调用方式,将原来的module.exports=xxx改为暴露全局变量,而调用方,将require(xxx)改为直接引用全局变量

直接被meteor框架调用的方法,使用meteorhacks:async包,将其从异步调用改为同步调用形式

创建meteor包

这种方法更复杂,但是也更进阶,不仅可以封装npm包,也能封装任意node.js代码(当然需要修改、适配),更能创建新的meteor包。

创建meteor包的具体方法不再赘述,参考如下:

Writing Meteor Packages

package.js doc

Meteor Packages Tutorial

学会创建meteor包之后,只需要按照上述方法适配代码,并封装成meteor包,便可以方便地使用和分享了。

参考项目

meteor-submail

该项目规模很小,便于分析。原始代码在submail-sdk文件夹中,其余代码为对原始代码的适配和封装。

有两种方法,

第一种:

就是在你的网页直接加入js代码.<script language="javascript" type="text/javascript">你的js代码.</script>

第二种:

把你的*.js文件,跟你的网站首页(可能是index.html),同放在一个目录下。然后在你的html里的<body>和</body>之间任意位置放下面这条代码进去(提示*.js,这个星号*是文件的名字,你可以随便起):

<script language="javascript" type="text/javascript" src="*.js"></script>

你所谓的HTML是英文Hypertext Markup Language的简写,说明了说是标签,还不能称之为语言。一般是一个开始标签与一个结束标签组成!是网站代码的基础!如果是你网页不会这个肯定办不了事!

JS的全称是javascript,是一门内嵌语言,是写在网页中以实现网页客户端交互。当然服务端JS也还是有的!一般是以<script language="javascript"></script>包括中的,也就是说以上还是一个HTML标签,但里边所写的内容却是javascript,浏览器会自动解释!当然这个语言就是为了网页的动态而出现的!

所以两者是有很大区别的!你可以这样理解:HTML是网页基础,而JAVASCIRPT是为了补充HTML的静态网页而出现的一个HTML或说浏览器内置语言!实现网页动态效果!