如何公开JS节点模块

时间:2015-02-20 21:20:30

标签: javascript node.js

我正在深入研究Node.js并成功安装了express和socket。我能够轻松地制作基本的聊天程序。这需要以下步骤:

在app.js(我的节点服务器)

var server = require('http').Server(app);
var io = require('socket.io')(server);

我在public / javascripts

中包含了缩小的socket.io.js文件

在public / javascripts / testchat.js中,只需像这样调用IO:

var socket = io();

然后用IO的东西做任何你想做的事。


我已经创建了自己的Node.js模块,但我不了解如何公开它。

在node_modules / myModule / index.js

module.exports = require('./lib');

在node_modules / myModule / lib / index.js

module.exports = myModule;

function myModule(){
    this.name = "hello";
}

myModule.prototype.test = function(){
    console.log(this.name);
}

我可以在app.js中轻松调用这些内容

var myModule = require('myModule');
var myMod = new myModule.test(); //hello

但是每次启动服务器时我都不希望这个东西运行。我想只在用户访问特定页面时运行。我怎么从这里到那里?我知道我错过了一些东西......我希望能够做到这一点:

在public / javascripts / myModule.js

var myModule = myModule(); //myModule is undefined
myModule.test();

谢谢。

1 个答案:

答案 0 :(得分:0)

您可以通过socket.io请求信息。保持网络连接打开往往会占用大量资源。通常,我们为移动应用程序或网站编写的大多数游戏和应用程序都调用我们用Express编写的REST API,这是一个node.js框架。基本上,您创建响应HTTP调用的端点。他们发回你想要的任何东西,我们通常使用JSON来响应数据。因此,您需要创建一个RESTful api应用程序,其中一个API背后是您的模块。您可以使用网页中的任何参数调用API,应用程序将根据您的数据进行响应。

当然,您需要进入身份验证,因此只有您想要访问权限的人才能获得身份验证。您遇到了安全和扩展问题。这是一个新世界。