【问题标题】:node http and express listening differencenode http和express监听的区别
【发布时间】:2014-07-25 13:38:50
【问题描述】:

我是 node 和 express 的新手。我遇到了两种创建快速应用程序的方法,该应用程序侦听特定的 TCP 端口,据我所知,这会产生相同的结果。有人可以解释一下这些的区别吗,如果有的话……这是 listen 功能

方法 1 - 仅使用 express 模块:

var express = require('express');

var port = 8080;
var app = express();
app.set('port', port);
...
// different listen method
app.listen(app.get('port'), function(){ 
  console.log('now listening on port ' + app.get('port'));
});

方法 2 - 使用 express 和 http 模块:

var http = require('http'), 
    express = require('express');

var port = 8080;
var app = express();
app.set('port', port);
...
// different listen method
http.createServer(app).listen(app.get('port'), function(){ 
  console.log('now listening on port ' + app.get('port'));
});

【问题讨论】:

    标签: node.js http express listen


    【解决方案1】:

    看一下快递源码中app.listen的定义:https://github.com/visionmedia/express/blob/9e6b881f8566f26f2d2ea017657455ec7c674ad6/lib/application.js#L524-L548

    app.listen = function(){
        var server = http.createServer(this);
        return server.listen.apply(server, arguments);
    };
    

    这只是一种方便的方法,用于执行您在上面的“方法 2”中定义的操作。 (Here's how apply() works if you need a refresher.)

    所以,他们做同样的事情:)

    【讨论】:

      猜你喜欢
      • 2020-10-25
      • 2015-03-03
      • 2015-11-30
      • 1970-01-01
      • 2017-04-10
      • 2021-09-15
      • 1970-01-01
      • 2020-06-06
      • 1970-01-01
      相关资源
      最近更新 更多