node.js - NodeJS - 在服务器创建后设置 http 服务器请求监听器
问题描述
在 NodeJS 中,通常你会像这样创建一个 HTTP 服务器:
const http = require('http');
const requestListener = // create listener, e.g. with express()
const server = http.createServer(requestListener);
server.listen(8080);
我的问题是,是否可以将请求侦听器的设置推迟到稍后的时间点(最好甚至在服务器已经在侦听之后)?
我想要这样的东西:
const http = require('http');
const server = http.createServer();
server.listen(8080);
const requestListener = // create listener, e.g. with express()
server.setRequestListener(requestListener);
显然,我可以很容易地创建这样的功能,从 HTTP 服务器类继承,但我很好奇 NodeJS 是否提供了这样做的内置方式。
解决方案
这是 Node.js 文档中关于http.createServer()
函数requestListener
参数的说明:
这
requestListener
是一个自动添加到request
事件中的函数。
进一步查看实际代码createServer()
- 这实际上就是它对这个参数所做的一切。
因此,您只需在创建服务器后手动添加侦听器即可获得类似的行为。
server.on('request', requestListener)
只要您在请求到来之前设置它,它就应该可以正常工作。
推荐阅读
- php - laravel 使用其关系 Ids 获取雄辩的数据
- java - 解析soap响应返回null
- arrays - 如何从 Ruby 中的数组中删除单个值?
- c# - 带锁的 C# 线程,在临界区后执行
- user-interface - Unity - 精灵比纹理占用更多内存?在设备上启动后导致黑屏?
- apache-flink - Flink 窗口状态大小和状态管理
- python - 如何用最少的代码在 Python 中绘制不同类型的混淆矩阵?
- amazon-cloudwatch - 不使用 JSON 将字段添加到 Cloudwatch
- sql - 我如何将这两行加在一起,两行之和
- java - BeanDefinitionStoreException: Unexpected exception parsing XML document from URL