我目前正在開發一個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 '並且你必須得到正確的迴應 –