同时使用节点静态和旅程



我是第一次使用Node.js。我用node-static提供静态文件,用journey提供路由。不幸的是,这两者似乎相互冲突,我不确定停止冲突的最佳方法。我的服务器是这样的:

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);
    });
  });
});

这样做的问题是,旅程路由器发送一个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);
      }
    });
  });

但这似乎不像我应该处理事情的方式。我做错了什么?

我找到了一个要点,展示了如何在旅程中使用节点静态。我基本上是对的。我很乐意听到任何替代的解决方案!

相关内容

  • 没有找到相关文章

最新更新