一起使用节点静态和旅程

我第一次使用Node.js。 我正在提供静态文件与节点静态和路由与旅程 。 不幸的是,两者似乎相互冲突,我不确定停止冲突的最佳方式。 我的服务器如下所示:

var http = require('http'); var nodeStatic = require('node-static'); var journey = require('journey'); var fileServer = new nodeStatic.Server('./public'); var router = new journey.Router; module.exports = http.createServer(function (req, res) { router.get('/api').bind(function (req, res) { res.send(200); }); var fileServer = new nodeStatic.Server('./public'); var router = new journey.Router; module.exports = http.createServer(function (req, res) { router.get('/api').bind(function (req, res) { res.send(200); }); req.addListener('end', function () { fileServer.serve(req, res); router.handle(req, '', function (result) { res.writeHead(result.status, result.headers); res.end(result.body); }); }); }); 

这个问题是Journey路由器发送一个404响应。 我设法使其工作的唯一方法就是在end监听器中这样做:

  req.addListener('end', function () { router.handle(req, '', function (result) { if (result.status === 404) { fileServer.serve(req, res); } else { res.writeHead(result.status, result.headers); res.end(result.body); } }); }); 

但这似乎不是我应该处理的事情。 我究竟做错了什么?

我发现了一个显示如何在旅途中使用节点静态的要点 。 我基本上是对的。 我很乐意听到任何替代解决scheme!

Interesting Posts