我目前正在开发一个Ionic应用程序并使用Express在NodeJS中编写服务器并将其托管在Heroku上。但是,它不能正确发布所需的路线。我得到这个错误,当我测试它在Chrome:无法在ExpressJet上的NodeJS服务器上发布参数id
Failed to load resource: the server responded with a status of 404 (Not Found) https://[SERVER NAME].herokuapp.com/rooms//messages
服务器应张贴ID参数/间之间/和/消息/,但事实并非如此。以下是服务器端代码:
var messages = []; //make an array to hold messages
var rooms = [];
app.get('/rooms', function(req, res) {
res.json(rooms);
});
app.get('/rooms/:id/', function(req, res){
var room = rooms[req.params.id];
res.json(room);
});
app.post('/rooms', function(req, res) {
var newRoom = {
timestamp: new Date()
//username: req.body.username
};
rooms.push(newRoom);
res.json(rooms);
console.log(rooms);
});
app.get('/messages', function(req, res) { //req = request, res = response
res.json(messages);
});
app.get('/messages/:id', function(req,res) {
var message = messages[req.params.id];
res.json(message);
});
app.post('/messages', function(req,res){
var newMessage = {
message:req.body.message,
username:req.body.username,
timestamp: new Date()
};
messages.push(newMessage);
res.json(messages);
});
为什么不正确发布正确的路由?当我检查Heroku上的日志时,它看起来并没有得到房间的ID: 谢谢。
编辑:下面是进一步参考GitHub的回购协议: 客户:https://github.com/dukeeagle/ttt-client 服务器:https://github.com/dukeeagle/ttt-server
'的https:// [服务器名称] .herokuapp.com /间// messages'是正确的请求?看看'/ rooms // messages' –
@DmitriyLoskutov你是什么意思?当然,[SERVER NAME]是一个占位符。当我尝试导航到'/ rooms // messages'时,什么都没有出现。 –
你必须声明'/ rooms /:id/messages'路线为'app.get('/ rooms /:id/messages',...'。然后尝试导航到'/ rooms/123/messages '并且你必须得到正确的回应 –