Nodejs模块实现

Nodejs Modules Implementation

本文关键字:实现 模块 Nodejs      更新时间:2023-09-26

如何实现一个模块,比如"test",它公开了getter和setter两个函数,以在nodejs中获取和设置其成员数据?

诀窍是通过setter从一个模块设置数据,比如"a"超过"测试",模块"b"应该可以通过"测试"的getter访问

场景是,一旦我们从索引中注册http请求的req和res对象以"测试",应用程序中的所有其他模块都应该可以访问它,只需声明require("测试")

这在nodejs中可能吗?

即使设置了全局变量,也无法实现这一点,因为reqres在每个页面请求中都可以访问(因此将它们设置为全局变量会导致出现竞争条件)。

实现这一点的唯一方法是将req和res作为参数传递给该模块。

示例:

app.js

var http = require('http');
http.createServer(function (req, res) {
  require('./sample')(req, res);
}).listen(1337, "127.0.0.1");

sample.js

module.exports = function (req, res) {
  // do stuff with req and res here
}