Использование node-static и совместное путешествие
Я использую 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);
}
});
});
но это не похоже на то, как я должен обращаться с вещами. Что я делаю неправильно?
1 ответ
Решение
Я нашел суть, показывающую, как использовать статическую ноду с путешествием. Я в принципе был прав. Я был бы рад услышать любые альтернативные решения, хотя!