我有这个简单的服务器,当我去localhost:3000我得到"不能GET /"当我尝试呼叫/注册时,我失败了。有任何想法吗?感谢
var express = require('express');
var gcm = require('node-gcm');
var apn = require('apn');
var app = express();
var device_token;
/*
, function(){
var host = server.address().address;
var port = server.address().port;
console.log(port, host);
}
*/
app.listen(3000);
app.use(function(req, res, next){
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
next();
});
app.post('/register', function(req, res){
device_token = req.body.device_token;
console.log('device token received');
console.log(device_token);
res.send('ok');
});
答案 0 :(得分:2)
导航到浏览器中的页面是GET
请求。您只为路由POST
的{{1}}请求定义了处理程序:
/register
您还没有为app.post('/register', function(req, res){
device_token = req.body.device_token;
console.log('device token received');
console.log(device_token);
res.send('ok');
});
路线定义任何内容。因此,当您导航到其中任何一个时,它正确地抛出/
,因为该路线本身未被定义,即对于Cannot GET
,或该路线的/
方法不是{&1;}。定义,即。 GET
。
您可以在根网址(/register
)处允许GET
请求:
/
对于app.get('/', function(req, res){
res.send('Hello!')
})
路由,您不应使用/register
请求,因为您需要在请求正文中发送信息以实际注册用户。 (只有发布请求才允许这样做。)
您已正确设置。您无法在浏览器中查看它。使用postman或卷曲测试它,看它是否有效。
答案 1 :(得分:1)
您没有/
的已定义路线。 /register
不起作用,因为您有app.post
,它只接受POST请求。如果您希望GET
/register
请求有效,请添加以下代码:
app.get('/register', function(req, res) {
res.send("It works!");
});