Nodejs模块实现
Nodejs Modules Implementation
如何实现一个模块,比如"test",它公开了getter和setter两个函数,以在nodejs中获取和设置其成员数据?
诀窍是通过setter从一个模块设置数据,比如"a"超过"测试",模块"b"应该可以通过"测试"的getter访问
场景是,一旦我们从索引中注册http请求的req和res对象以"测试",应用程序中的所有其他模块都应该可以访问它,只需声明require("测试")
这在nodejs中可能吗?
即使设置了全局变量,也无法实现这一点,因为req
和res
在每个页面请求中都可以访问(因此将它们设置为全局变量会导致出现竞争条件)。
实现这一点的唯一方法是将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
}
相关文章:
- 为什么在javascript中的模块模式中实现Lazy函数时范围会发生变化
- 试图通过模块模式在DOM元素上实现change()事件
- 为什么在javascript中实现模块模式时要执行自我执行
- 如何实现一个插件,它只在需要时修改原始模块
- 如何使用 Apache Storm javascript 模块实现示例 bolt
- JavaScript - 如何注入不同的函数实现,例如 alert(与 web 和 Node 共享模块.js服务器端)
- 如何使用公共静态实现模块模式
- 强制模块具有特定功能.例如实现一个接口
- NodeJS如何在net模块中实现请求/响应
- 如何使用child_process模块在Nodejs中实现一输入一输出
- 有没有关于使用ONLY核心模块实现restapi和auth的node.js教程
- javascript模块依赖性实现
- 如何使用babel为我的js服务模块实现经过身份验证的es 7装饰器
- ES6模块实现,如何加载json文件
- Nodejs模块实现
- 在Javascript中实现依赖于jquery的模块模式
- 使用AngularJS实现模块间的共享
- 在JavaScript中实现模块模式函数的最佳方式
- 用Nashorn实现模块模式
- 第一次实现模块模式变量是未定义的