我指的是使用Express 4建立节点服务器的一些在线教程。我将使我的问题变得非常简单易懂。
主app.js文件有以下几行(其他代码行如中间件等不在此处显示)
var express = require('express');
var routes = require('./routes/index');
var users = require('./routes/users');
var app = express();
app.use('/', routes);
app.use('/users', users);
我已经测试了上面的代码。包含routes文件夹中的index.js和users.js。这很完美。这意味着已经创建了http服务器。
但是,当我在另一个网站上说另一种编码时,我的困惑提出了。它有以下几行代码。
var express = require('express'),
routes = require('./routes'),
http =require('http’);
var app = express();
我的第一个困惑是,为什么我们需要使用http中间件。
代码进一步创建了这样的服务器
var server = http.createServer(app);
由于我使用的是Express框架,为什么我们需要以这种方式创建服务器
参考资料可以在https://github.com/azat-co/practicalnode/blob/master/ch5/blog-express/app.js#L72
找到任何帮助都将受到高度赞赏。提前谢谢。
答案 0 :(得分:2)
也许开发人员想要稍后为其他特定用途创建原始http服务器?严格来说,没有必要这样做。
以下内容足以创建一个http服务器,并开始使用express:
侦听连接var express = require('express');
app = express();
app.listen(3000);
答案 1 :(得分:1)
表达最好的方式是:
app = express();
app.listen(3000);
理论上这是:
var server = http.createServer(app);
可用于重用http服务器,例如运行套接字。 但app.listen也返回http服务器,如http.createServer(app); 我们可以这样做:
var server = http.createServer(app);
var io = require('socket.io')(server);
但我们也可以:
var server = app.listen(3033);
var io = require('socket.io')(server);
当createServer(app)可能有用时?如果我们想听http i https:
http.createServer(app).listen(80);
https.createServer(options, app).listen(443);