如何公开JS节点模块

How to expose a JS Node Module

本文关键字:模块 节点 JS 何公开      更新时间:2024-02-26

我正在深入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中编写的RESTAPI,这是一个node.js框架。从本质上讲,您可以创建响应HTTP调用的端点。他们发送回您想要的任何内容,我们通常使用JSON来响应数据。因此,您需要创建一个RESTful api应用程序,在其中一个api后面是您的模块。您使用网页中的任何参数调用API,应用程序将使用您的数据进行响应。

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