如何知道传递给node.js http.Server的接口规范

时间:2016-02-29 23:58:37

标签: node.js

所有

我对socket.io很新,当我通过它的Docs(特别是Express 3/4部分)时,有一个例子:

polyfit

我想要了解的是这一行:

slope * x + intercept

这里的文档:https://nodejs.org/api/http.html#http_class_http_server 让我更加困惑,我想任何人都可以提供一些细节如何阅读这些文档( Node.js Express.js API)以及如何找出什么那个" app"应该是这样的,以便它可以传递到var app = require('express')(); var server = require('http').Server(app); var io = require('socket.io')(server); server.listen(80); app.get('/', function (req, res) { res.sendfile(__dirname + '/index.html'); }); io.on('connection', function (socket) { socket.emit('news', { hello: 'world' }); socket.on('my other event', function (data) { console.log(data); }); });

由于

1 个答案:

答案 0 :(得分:0)

它有点令人困惑,但http.Server的基本契约是它需要一个接受2个参数的请求处理函数:req, resapp对象express为你创建的实际上是一个函数,并且实际上被设计为用作http请求处理程序,所以它们一起工作,但它可能非常混乱,因为除了作为函数之外,当然{ {1}} instance是一个表示整个express应用程序的复杂对象,因此它有很多其他属性。但是像app这样简单的东西可以很好地作为function (req, res) { console.log('Request received')}的参数。

连接点的另一种方法是执行此操作并确认事情仍然可以正常工作:

http.Server

然后你意识到你的函数只是将参数传递给var server = require('http').Server(function (req, res) { app(req, res) }); 未经修改,因此是不必要的。