Использование node-static и совместное путешествие - PullRequest
2 голосов
/ 28 августа 2011

Я использую Node.js впервые.Я обслуживаю статические файлы с node-static и направляю с trip .К сожалению, эти двое, похоже, конфликтуют друг с другом, и я не уверен, что лучше всего остановить конфликт.Мой сервер выглядит так:

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

, но это не похоже на способ, которым я должен обрабатывать вещи.Что я делаю не так?

1 Ответ

1 голос
/ 28 августа 2011

Я нашел гистограмму, показывающую, как использовать нод-статический с поездкой . Я в принципе был прав. Я был бы рад услышать любые альтернативные решения, хотя!

...