비표준 HTTP 메소드 (동사)를 사용하여 요청에 응답하는 HTTP 서버를 작성하고 싶습니다. 예를 들어 클라이언트는 FOO/HTTP/.1.1
과 같은 요청을합니다. 내가 ExpressJS의 lib/router/methods.js
에서 내 보낸 배열 내 표준이 아닌 방법을 추가 ExpressJS로 비표준 HTTP 메소드 제공
var express = require('express');
var app = express.createServer();
app.configure(function(){
app.use(express.logger({ format: ':method :url' }));
app.use(express.methodOverride());
});
app.foo('/', function(req, res){
res.send('Hello World');
});
app.listen(3000);
: 그리고 서버 측에서,이 요청은 같은 의해 처리 될 것이다. 이를 통해 예상대로 서버 코드를 작성할 수 있습니다. express.methodOverride()
및 POST
요청을 _method=foo
과 함께 사용하면 작동합니다. 그러나 실제 FOO
요청이 작동하지 않습니다. 내가 ExpressJS와 핵심 파일에 해킹을 피하지 않고이를 구현 할 수 있도록하고 싶습니다
$telnet localhost 3000
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
FOO/HTTP/1.1
Connection closed by foreign host.
: 즉시 클라이언트로 연결이 서버에 의해 폐쇄 요청의 첫 번째 줄을 보낼 수 있습니다.
이것이 가능한지 및 어떤 생각이 있으십니까?
업데이트를 게시하려면 현재 노드 (4.6)와 express (4) 버전에서 사용자 정의 HTTP 동사를 처리 할 수 있습니다. 'app.all'을 듣고 콜백에서'req.method'를 체크하면 작동합니다. – MatsLindh