我有一個相當簡單的node.js應用程序,它將通過REST接口控制一些LED。有些頁面應顯示某些信息 - 這些信息是從帕格模板創建的。其他一些REST端點應打開或關閉LED。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,express和相關概念非常陌生,所以我寧願呆在這裏。
誰能幫助?
親切的問候,
克里斯
如可以從輸出中可以看出,你似乎正在向'/ on'發出一個GET請求,而不是POST請求。 –
這是因爲您試圖通過GET訪問您的端點,而不是POST。 – JavaEvgen
這是因爲您在發佈帖子請求時沒有返回任何內容。 ('status''success'}); });如果你有一個類似於'router.post('/ on',function(req,res) ' –