我有一个相当简单的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) ' –