附上http.Server来表达Route

时间:2017-03-25 09:50:02

标签: node.js express

是否可以将http.Server对象作为中间件附加到快速Router?我有一个生成原始http.Server的外部库,但由于我还使用了快速Web服务器,因此我需要将原始http.Server内的应用程序逻辑集成到express中。有没有办法做什么,即组合/合并两个服务器的应用程序逻辑?

我已经尝试了app.use功能,但显然表达不支持http.Server开箱即用。

2 个答案:

答案 0 :(得分:1)

来自github:

创建一个http服务器来提供该torrent的内容,并动态获取所需的torrent文件以满足http请求。支持范围请求。

torrent.createServer([opts])

示例:

var client = new WebTorrent()
client.add(magnet_uri, function (torrent) {
  // create HTTP server for this torrent
  var server = torrent.createServer()
  server.listen(port) // start the server listening to a port

  // visit http://localhost:<port>/ to see a list of files

  // access individual files at http://localhost:<port>/<index> where index 
is the index
  // in the torrent.files array

  // later, cleanup...
  server.close()
  client.destroy()
})

返回http.Server实例(从调用http.createServer获得)。如果指定了opts,则将其传递给http.createServer函数。

访问服务器的根目录/将显示单个文件的链接列表。访问 /处的单个文件,torrent.files数组中的索引在哪里 (例如/ 0,/ 1等)

我通常将此设置与cors一起使用:

在文档中:“ CORS是一个node.js软件包,用于提供可用于通过各种选项启用CORS的Connect / Express中间件。”

app.js

var express = require('express');
var cors = require('cors');
var app = express();
var port = 3000;
var router = express.Router();

app.use(cors({ origin: 'http://localhost:4200' }));
app.listen(port, () => console.log(`Node's Express is listening on Port ${port}..`));

答案 1 :(得分:0)

我用这个

const expressServer = express();

const httpServer = http.createServer();
httpServer.on("request", expressServer);

替代:

const expressServer = express();

const httpServer = http.createServer(expressServer);

:-)