当前位置: 首页 > 面试题库 >

Express.js-app.listen与server.listen

陈欣荣
2023-03-14
问题内容

这可能是一个非常基本的问题,但我根本不理解。使用 Express.js 创建应用程序和在端口1234上启动应用程序侦听之间有什么区别,例如:

var express = require('express');
var app = express();

//app.configure, app.use etc

app.listen(1234);

并添加http服务器:

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

var app = express();
var server = http.createServer(app);

//app.configure, app.use etc

server.listen(1234);

有什么不同?
如果导航到http://localhost:1234,则得到相同的输出。


问题答案:

第二种形式(您自己创建一个HTTP服务器,而不是让Express为您自己创建一个HTTP服务器)在您想重用HTTP服务器(例如socket.io在同一个HTTP服务器实例中运行)时非常有用:

var express = require('express');
var app     = express();
var server  = require('http').createServer(app);
var io      = require('socket.io').listen(server);
...
server.listen(1234);

但是,app.listen()还会返回HTTP服务器实例,因此,只需进行一些重写,您就可以实现类似的操作,而无需自己创建HTTP服务器:

var express   = require('express');
var app       = express();

// app.use/routes/etc...

var server    = app.listen(3033);
var io        = require('socket.io').listen(server);

io.sockets.on('connection', function (socket) {
  ...
});


 类似资料:
  • Express 是一个简洁而灵活的 node.js Web应用框架, 提供一系列强大特性帮助你创建各种Web应用。Express 不对 node.js 已有的特性进行二次抽象,我们只是在它之上扩展了Web应用所需的功能。丰富的HTTP工具以及来自Connect框架的中间件随取随用,创建强健、友好的API变得快速又简单 示例代码: var express = require('express')va

  • 问题内容: 假设我想要具有大致如下所示的REST端点: 如果可行,对每个对象都使用CRUD。例如,/ user POST创建一个新用户,GET获取所有用户。/ user / user_id GET仅获取该用户。 项目是特定于用户的,因此我将它们放在特定用户 user_id 下。 现在,为了使Express Routing模块化,我制作了一些路由器实例。有一个供用户使用的路由器,以及一个用于物品的路

  • 问题内容: 我有一个棘手的情况:我正在构建一个完整的流星功能的应用程序。但是出于自动化原因,我还需要将某些功能公开为REST服务(第三方应用程序应该能够通过REST插入和接收数据)。 express.js-package似乎是将REST- Endpoint构建到node.js环境中的一个非常可靠的选择,但是我想知道如何将该终结点集成到流星中。 我想要的是例如通过来访问“常规”站点,同时又能够通过来

  • 问题内容: 我是Node.js的学习者。 什么是Express.js? Node.js的目的是什么? 为什么我们实际上需要Express.js?与Node.js一起使用对我们有用吗? 什么是Redis?Express.js附带吗? 问题答案: 这过于简化了,但是Express.js对Node.js来说就像Ruby on Rails 或Sinatra对Ruby一样。 Express 3.x是一种轻量

  • 问题内容: 我正在使用Express.js(在Node.js上),并且我知道您可以通过“ locals”参数使用自定义数据呈现视图。() 有什么办法可以拥有“全局变量”吗?(即每个视图均可访问的数据) 我看到了,但这不是递归的,因此,如果我在模板中使用任何本地语言,它将替换我设置的本地语言。 这是我的用例:我想这样做,以便可以每页添加CSS / JS文件,这是我的主要布局的一部分。问题是,如果我没

  • 我知道PUT和POST之间的主要区别是幂等性,但我想在实际的层面上理解它。 例如,假设我必须处理用户更改用户名的请求: 有哪些不同之处: 而且 你会用哪一个?