1
我正在嘗試使用nodejs和express來構建應用程序。我目前面臨一個奇怪的問題。在Express中使用路由時出現錯誤500
下面是它的外觀到目前爲止:
var express = require('express');
var routes = require('./routes'); //here I have all functions for routing
app.use(app.router);
app.get("/", routes.index)
.get("/login", routes.login)
.get("/restricted/menu", routes.menu)
.get("/restricted/myapp", routes.datePicker) //I send to a page where the user select a date
.get("/restricted/myapp/:datetoget", routes.myapp) //after selecting the date, the user is redirected to a URL like this : /restricted/myapp/2014-01-30
.use(route.allOther);
....
當我試圖訪問的網頁出現問題:
主機/受限制/ MYAPP/
不填充 「datetoget」參數。這是控制檯,當我嘗試當我把東西后的myapp /它的工作原理達到這一頁
HTTP Express server listening on port 3000
undefined
GET /restricted/myapp/ 500 8ms
(例如:/主機/受限制/ MYAPP /東西)。 下面是routes.myapp函數的代碼的一部分:
function(req,res){
console.log('into myapp'); //this step seems not to be reached
var date;
if(req.params.datetoget){
date = new Date(req.params.datetoget);
if(!utilities.isDate(date)){
date = new Date();
}
}else{
date = new Date();
}
...
}
是不是也似乎最後
.use(routes.allOther)
不起作用,因爲我的紳士標準500快車錯誤頁面。 我也試圖把一個新的路線是這樣
.get('/restricted/myapp/', routes.myapp)
它並沒有解決問題。
萬一這是routes.datePicker
var notInDir = true;
for(var dirKey in directories){ //directories is an object where I store string of directories
var dir = directories[dirKey];
if(req.originalUrl === dir.ref){ //The origin must be known
var datePicker = {
title:"Select the date",
jsFile: [array of Javascript needed files],
cssFile: [array of css needed files],
mode: "datebox",
ref: req.originalUrl
};
res.render("/restricted/datepicker.ejs",datePicker);
notInDir = false;
}
}
if(notInDir){
throw "Error";
}
我有點到目前爲止丟失一點點的幫助,將感激:-) 非常感謝。
你能顯示'routes.datePicker'嗎? –
您應該在普通路線之前列出更具體的路線。嘗試將「/ restricted/myapp /:datetoget」的app.get移動到「/ restricted/myapp」上面 –
您好,我剛剛編輯了這篇文章。 @Hector科雷亞:我同意你的看法,但遺憾的是,該命令沒有改變任何東西:( – Caktus