Node.js NodeJS中需要('express')()做什么

Node.js NodeJS中需要('express')()做什么,node.js,express,Node.js,Express,据我所知,require'express并不创建服务器,它只是将功能捆绑在一起。但如果是这样的话,下面的代码在没有服务器的情况下如何运行 const express = require('express') const app = express() app.get('/', function (req, res) { res.send('Hello World!') }) app.listen(3000, function () { console.log('Example app

据我所知,require'express并不创建服务器,它只是将功能捆绑在一起。但如果是这样的话,下面的代码在没有服务器的情况下如何运行

const express = require('express')
const app = express()

app.get('/', function (req, res) {
  res.send('Hello World!')
})

app.listen(3000, function () {
  console.log('Example app listening on port 3000!')
})
另外,如果它确实创建了一个服务器,为什么在下面的示例中需要导入http模块并手动创建一个服务器

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

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

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

http.listen(3000, function(){
  console.log('listening on *:3000');
});
我很困惑。提前感谢。

require'express'创建一个express应用程序实例

它是这个的简称:

var express = require('express');
var app     = express();
如果要创建http服务器,不需要显式使用http,因为如果调用app.listen,Express将为您创建一个http服务器

如果您需要该服务器用于其他用途,例如,将socket.io实例连接到该服务器,则可以使用以下方法:

var express = require('express');
var app     = express();
var server  = app.listen(3000, ...); // returns an `http.Server` instance
var io      = require('socket.io')(server);
require'express'创建express应用程序的实例

它是这个的简称:

var express = require('express');
var app     = express();
如果要创建http服务器,不需要显式使用http,因为如果调用app.listen,Express将为您创建一个http服务器

如果您需要该服务器用于其他用途,例如,将socket.io实例连接到该服务器,则可以使用以下方法:

var express = require('express');
var app     = express();
var server  = app.listen(3000, ...); // returns an `http.Server` instance
var io      = require('socket.io')(server);

基本上,当您确实需要“express”时,它会导入一个函数。下面的代码也调用该函数。基本上,它实例化了一个express应用程序。

基本上,当您确实需要“express”时,它会导入一个函数。下面的代码也调用该函数。基本上,它实例化了一个express应用程序。

第二个示例使用http,因为它还使用socket.io,这需要http服务器。您可以使用express app实例化这样的http服务器,这就是我们正在做的事情。第一个示例不需要http服务器吗?它从express app创建http协议服务器,但不使用http模块中的服务器,第二个示例使用http,因为它也使用socket.io,而socket.io需要http服务器。您可以使用express应用程序实例化这样的http服务器,这就是我们正在做的。第一个示例不需要http服务器吗?它从express应用程序创建http协议服务器,但不使用http模块中的服务器,而第二个示例需要感谢您。这是否消除了socket.io对http的需求?@SKG它消除了http的显式使用,是的。在内部,Express会调用http.createServer来创建服务器。谢谢。这是否消除了socket.io对http的需求?@SKG它消除了http的显式使用,是的。在内部,Express会调用http.createServer来创建服务器。