Почему мой сервер ExpressJS не принимает запросы POST? - PullRequest
0 голосов
/ 13 сентября 2011
var express = require('express');

var app = module.exports = express.createServer();

// Configuration

app.configure(function(){
  app.set('views', __dirname + '/views');
  app.set('view engine', 'jade');
  app.use(express.bodyParser());
  app.use(express.methodOverride());
  app.use(express.compiler({ src: __dirname + '/public', enable: ['less'] }));
  app.use(app.router);
  app.use(express.static(__dirname + '/public'));
});

// Routes

app.get('/*', function(req, res){
  console.log(req.headers);
  res.end();
});

app.listen(1234);

Когда я загружаю http://localhost:1234 в браузер, он работает как положено, и я получаю следующий вывод:

{ host: 'localhost:1234',
  'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:6.0.2) Gecko/20100101 Firefox/6.0.2',
  accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
  'accept-language': 'en-us,en;q=0.5',
  'accept-encoding': 'gzip, deflate',
  'accept-charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7',
  connection: 'keep-alive' }

Но когда я публикую данные, они ничего не возвращают. Есть идеи почему?

Ответы [ 2 ]

6 голосов
/ 13 сентября 2011

Вы используете app.get. Это будет отвечать только на GET запросов. Возможно, вы захотите узнать, работает ли app.post.

1 голос
/ 27 июля 2013

Если вы хотите использовать универсальный маршрут:

app.all('*', function(req, res){
  res.send(200, req.route.method+' '+req.originalUrl);
});

Помните, что заказ, который вы вызываете app.method(route...), имеет значение.Если вы поместите этот универсальный маршрут в начало вашего кода маршрутизации, он будет соответствовать каждому отдельному запросу.Поскольку он всегда отправляет ответ, любые подходящие маршруты ниже не будут выполняться.

Если вы хотите пропустить определенную функцию маршрутизации и перейти к любым последующим соответствующим маршрутам, вы можете пропустить и вызвать nextобратный вызов в функции маршрутизации:

app.all('*', function(req, res, next){
  console.log(req.route.method+' '+req.originalUrl);
  next();
});

app.get('/', function(req, res){
  res.send(500);
});

app.post('/', function(req, res){
  res.send(404);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...