2017-02-16 2 views
0

REST 인터페이스를 통해 일부 LED를 제어하는 ​​아주 간단한 node.js 애플리케이션이 있습니다. 특정 정보를 표시하는 페이지가 있습니다.이 정보는 pug 템플릿에서 생성됩니다. 그리고 다른 REST 종점은 리드를 켜거나 끌 것입니다.node.js express router.post 404 제공

내 문제는 를 얻을 수와 내가 HTML 사이트를 반환 할 수 있습니다,하지만 난 포스트를 통해 기능을 실행할 수 없다는 것입니다.

내 코드입니다 :

var express = require('express'); 
var router = express.Router(); 
var led = require('../public/javascripts/driveredled'); 

/* GET Red LED page. */ 
router.get('/', function(req, res, next) { 
    res.render('oneled', { title: 'Red LED' }); 
}); 

// base path is already set as being /leds/{color} 
router.post('/on', function(req, res) { 
    led.turnledon(); 
}); 

// base path is already set as being /leds/{color} 
router.post('/off', function(req, res) { 
    led.turnledoff(); 
}); 

// base path is already set as being /leds/{color} 
router.post('/blink', function(req, res) { 
    led.blinkled(); 
}); 

module.exports = router; 

여기에 로그 출력 :

sudo npm start 
> [email protected] start /data/shared/Developing/ledconodel 
> node ./bin/www 

Listening on port port 3000 
GET /leds/blue/ 200 2291.133 ms - - 
GET /leds/blue/ 304 229.306 ms - - 
GET /stylesheets/style.css 304 11.105 ms - - 
GET /leds/blue/on 404 328.030 ms - 1155 

바와 같이, (동적 퍼그를 통해 생성) HTML 페이지가 제대로 반환 볼 수 있지만, 끝 지점 에 대한 게시 명령은에 있지 않습니다.

저는 node.js, 표현식 및 관련 개념이 매우 새롭기 때문에 여기에서 오히려 당황합니다.

아무도 도와 줄 수 있습니까?

종류와 관련,

크리스 로그 출력에서 ​​

+0

으로 당신의 출력에서 ​​볼 수 , 당신은 것 POST 방법을 시뮬레이션 할 수 Postman 같은 다른 소프트웨어를 사용하십시오 404 오류가 발생합니다 POST 요청 대신'/ on '에 GET 요청을해야합니다. –

+0

POST가 아닌 GET으로 끝점에 액세스하려고하기 때문입니다. – JavaEvgen

+0

게시물 요청이있을 때 아무 것도 반환하지 않기 때문입니다. 'router.post ('/ on ', function (req, res) { led.turnledon(); res.json ({status :'success '}) ;; })와 같은 작업을 수행합니다. ' –

답변

1
GET /leds/blue/on 404 328.030 ms - 1155

는, 당신이 POST, GET을하지 호출 할 것 같다. 그리고 컨텍스트에 대해 GET을하지 않았으므로 404가 표시됩니다.

서비스를 호출하는 방법에 관해 게시 할 수 있습니까?

+0

안녕하세요. 답장을 보내 주셔서 감사합니다. 게시물을 가져 오려면 코드를 변경했지만 지금은 500 오류가 발생합니다. GET/leds/red/on 500 104.539 ms - 1250 GET /stylesheets/style.css 304 1.881 ms - - GET/leds/red/on 500 88.065 ms - 1250 GET /stylesheets/style.css 304 18.859 ms - - – siliconchris

1

예를 들어 특정 경로에 액세스하려고 시도 할 때. /on는 기본적으로 브라우저는 행 노선 GET 방법을 사용합니다 .. 그래서 당신은

as shown in this pic

+0

대단히 감사합니다. 나는 단지 주도권을 켜고 끄려고 노력하면서, 나는 명령을 사후에서 사기로 변경하기로 결정했다. 하지만 이제는 500 오류로 인사했습니다 :-( – siliconchris

+0

500은 "내부 서버 오류"를 의미하므로 코드에 문제가있어서 ur 경로가 작동하는지 확인하십시오 ..'console.log ("Testing")을 추가하십시오. ; '귀하의 콜백 안에 .. 시험해보십시오. – Chaitanya

+0

내 사이트에 완벽하게 지금 :-) 모든 것이 예상대로 작동합니다. 나는 500을 일으키는 수출되지 않는 기능을 가진 문제점을 가지고 있었다. – siliconchris