以Express应用程序作为参数评估require(“ http”)。Server()时会发生什么情况?

亚历克斯·布斯

我在这里阅读Socket.io聊天演示:http ://socket.io/get-started/chat/ ,在查看他们的require语句时我感到困惑。

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);

app.get('/', function(req, res){
res.sendfile('index.html');
});

io.on('connection', function(socket){
console.log('a user connected');
});

http.listen(3000, function(){
console.log('listening on *:3000');
});

我的想法是正确的,它require("express")会生成一个可执行的Express函数(具有所有必需的函数和require("http").Server(app)随之而来的函数),并会创建一个具有其所有字段和函数的http.Server对象。

如果是这样,我会感到困惑,因为Express在我们调用.listen函数时会创建一个服务器,因此将Express应用程序传递到http模块服务器似乎是多余的,也是倒退的。

所以,我的问题是,这里到底发生了什么?

蒂莫西·斯特拉普(Timothy Strimple)

http服务器期望具有以下签名的功能:

function(req, res)

require('express')();将使用该签名创建一个函数,该函数处理所有表达使路由,中间件等可用的魔力。Express可以创建自己的http服务器实例,但是由于您还使用了socket.io(它希望访问http服务器)以及),您将需要一个单独的http实例。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将函数用作参数时会发生什么情况?

来自分类Dev

应用程序在Cordova中退出时会发生什么情况?

来自分类Dev

当您清除Android应用程序的存储空间时会发生什么情况

来自分类Dev

将数组作为参数传递时会发生什么情况?

来自分类Dev

将属性应用于python中的类方法时会发生什么情况?

来自分类Dev

在Openshift上热部署node.js应用程序时会发生什么情况?

来自分类Dev

构造函数使用1个参数,但基本关键字使用2个参数时会发生什么情况

来自分类Dev

构造函数使用1个参数,但基本关键字使用2个参数时会发生什么情况

来自分类Dev

当我以`even`作为生成器函数调用`even(3)`时会发生什么情况?

来自分类Dev

在Docker中运行的多进程应用程序(例如Postgres)会发生什么情况?

来自分类Dev

如果应用程序处于睡眠状态时执行PerformSelector会发生什么情况?

来自分类Dev

当我将unpack()作为lua的函数参数调用时,会发生什么情况?

来自分类Dev

在没有适当的wait()调用的情况下关闭应用程序时,QThread会发生什么情况?

来自分类Dev

当应用程序在收到 http 响应之前暂停/停止时会发生什么?

来自分类Dev

如果在ThreadPool线程正在写入文件时关闭应用程序会发生什么情况?

来自分类Dev

升级Firebase时,我的iOS应用程序(当前在App Store上运行)会发生什么情况?

来自分类Dev

如果我将KDE安装并运行到Ubuntu 18.04,已经安装的GNOME应用程序会发生什么情况?

来自分类Dev

如果我将KDE安装并运行到Ubuntu 18.04,已经安装的GNOME应用程序会发生什么情况?

来自分类Dev

升级Firebase时,我的iOS应用程序(当前在App Store上运行)会发生什么情况?

来自分类Dev

如果将很少的参数传递给Shell函数,会发生什么情况?

来自分类Dev

如果规则多次应用于表单,会发生什么情况

来自分类Dev

Inno Setup卸载程序到没有标志的注册表项会发生什么情况?

来自分类Dev

如果未在lambda函数中取消超时处理程序,会发生什么情况?

来自分类Dev

TestFlight应用程序到期时会发生什么?

来自分类Dev

当android优化应用程序时会发生什么?

来自分类Dev

在Haskell中用+编写*时会发生什么情况?

来自分类Dev

在Git中删除分支时会发生什么情况

来自分类Dev

如果应用程序在处理程序中要写入的先前条目的状态下将新条目写入事件日志,会发生什么情况?

来自分类Dev

如果在程序运行时删除程序执行程序,会发生什么情况?

Related 相关文章

  1. 1

    将函数用作参数时会发生什么情况?

  2. 2

    应用程序在Cordova中退出时会发生什么情况?

  3. 3

    当您清除Android应用程序的存储空间时会发生什么情况

  4. 4

    将数组作为参数传递时会发生什么情况?

  5. 5

    将属性应用于python中的类方法时会发生什么情况?

  6. 6

    在Openshift上热部署node.js应用程序时会发生什么情况?

  7. 7

    构造函数使用1个参数,但基本关键字使用2个参数时会发生什么情况

  8. 8

    构造函数使用1个参数,但基本关键字使用2个参数时会发生什么情况

  9. 9

    当我以`even`作为生成器函数调用`even(3)`时会发生什么情况?

  10. 10

    在Docker中运行的多进程应用程序(例如Postgres)会发生什么情况?

  11. 11

    如果应用程序处于睡眠状态时执行PerformSelector会发生什么情况?

  12. 12

    当我将unpack()作为lua的函数参数调用时,会发生什么情况?

  13. 13

    在没有适当的wait()调用的情况下关闭应用程序时,QThread会发生什么情况?

  14. 14

    当应用程序在收到 http 响应之前暂停/停止时会发生什么?

  15. 15

    如果在ThreadPool线程正在写入文件时关闭应用程序会发生什么情况?

  16. 16

    升级Firebase时,我的iOS应用程序(当前在App Store上运行)会发生什么情况?

  17. 17

    如果我将KDE安装并运行到Ubuntu 18.04,已经安装的GNOME应用程序会发生什么情况?

  18. 18

    如果我将KDE安装并运行到Ubuntu 18.04,已经安装的GNOME应用程序会发生什么情况?

  19. 19

    升级Firebase时,我的iOS应用程序(当前在App Store上运行)会发生什么情况?

  20. 20

    如果将很少的参数传递给Shell函数,会发生什么情况?

  21. 21

    如果规则多次应用于表单,会发生什么情况

  22. 22

    Inno Setup卸载程序到没有标志的注册表项会发生什么情况?

  23. 23

    如果未在lambda函数中取消超时处理程序,会发生什么情况?

  24. 24

    TestFlight应用程序到期时会发生什么?

  25. 25

    当android优化应用程序时会发生什么?

  26. 26

    在Haskell中用+编写*时会发生什么情况?

  27. 27

    在Git中删除分支时会发生什么情况

  28. 28

    如果应用程序在处理程序中要写入的先前条目的状态下将新条目写入事件日志,会发生什么情况?

  29. 29

    如果在程序运行时删除程序执行程序,会发生什么情况?

热门标签

归档