http.createServer express.createServer有区别吗
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了http.createServer express.createServer有区别吗相关的知识,希望对你有一定的参考价值。
参考技术A var express = require('express'),path = require('path'),
http = require('http'),
io = require('socket.io'),
wine = require('./routes/wines');
var app = express();
app.configure(function ()
app.set('port', process.env.PORT || 3000);
app.use(express.logger('dev'));
app.use(express.bodyParser())
app.use(express.static(path.join(__dirname, 'public')));
);
var server = http.createServer(app);
io = io.listen(server);
io.configure(function ()
io.set('authorization', function (handshakeData, callback)
if (handshakeData.xdomain)
callback('Cross-domain connections are not allowed');
else
callback(null, true);
);
);
server.listen(app.get('port'), function ()
console.log("Express server listening on port " + app.get('port'));
);
app.get('/wines', wine.findAll);
app.get('/wines/:id', wine.findById);
app.post('/wines', wine.addWine);
app.put('/wines/:id', wine.updateWine);
app.delete('/wines/:id', wine.deleteWine);
io.sockets.on('connection', function (socket)
socket.on('message', function (message)
console.log("Got message: " + message);
ip = socket.handshake.address.address;
url = message;
io.sockets.emit('pageview', 'connections': Object.keys(io.connected).length, 'ip': '***.***.***.' + ip.substring(ip.lastIndexOf('.') + 1), 'url': url, 'xdomain': socket.handshake.xdomain, 'timestamp': new Date());
);
socket.on('disconnect', function ()
console.log("Socket disconnected");
io.sockets.emit('pageview', 'connections': Object.keys(io.connected).length);
);
);
这是一个例子,我没细看,你可以参考本回答被提问者采纳
用 http.createServer 或 app = express() 调用 express 有啥区别?
【中文标题】用 http.createServer 或 app = express() 调用 express 有啥区别?【英文标题】:What's the difference between calling express with http.createServer or app = express()?用 http.createServer 或 app = express() 调用 express 有什么区别? 【发布时间】:2018-06-01 01:56:27 【问题描述】:我正在学习 express,我已经看到了 2 种不同的创建服务器的方法。只是好奇这两种方法有什么区别。这是一个在大多数教程中完成的快速服务器:
var express = require('express');
var app = express();
app.listen(3000, function ()
console.log('Example app listening on port 3000.');
);
我发现的第二种方法是使用 http 服务器。
var express = require('express');
var app = express();
var http = require('http');
var httpServer = http.createServer(app);
httpServer.listen(3000);
为什么以及何时我会使用其中一个而不是另一个?有很大的不同吗? 谢谢你
【问题讨论】:
Express.js - app.listen vs server.listen的可能重复 【参考方案1】:差异的原因是有时您想创建多个 Express 实例来进行路由,并且应该只有其中一个在监听。然而,在最微不足道的情况下,并没有明显的区别。
请务必记住,Express 和 HTTP 服务器是两个完全不同的东西。诀窍是app.listen
会自动为你实例化一个服务器,否则你必须自己做。
【讨论】:
以上是关于http.createServer express.createServer有区别吗的主要内容,如果未能解决你的问题,请参考以下文章
用 http.createServer 或 app = express() 调用 express 有啥区别?
Express 应用程序作为 http.createServer 的参数
带有 http.createServer 的服务器和在节点 js 中使用 express 的服务器之间的区别