繁体   English   中英

如何公开JS节点模块

[英]How to expose a JS Node Module

我正在深入了解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();

谢谢。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM