發送到我的Express服務器我對Node.js的Express服務器基本安裝困惑請求路徑是從AJAX
我試圖用res.sendFile
HTML文件,使用該路由處理服務:
router.get('/:run_id/:test_num',function(req,res,next){
var runId = req.params.run_id;
var testNum = req.params.test_num;
res.sendFile(path.resolve('results',runId,testNum),{
maxAge:'58h'
});
});
在我的app.js文件,我有這樣的中間件
app.use('/results', require('./routes/results'));
的問題是,該請求被路由像這樣:
pathname: '/results/results/1450830953375/test6.txt',
path: '/results/results/1450830953375/test6.txt',
href: '/results/results/1450830953375/test6.txt'
所以問題是,它是/results/results/
,而不是僅僅/results
我使用RequireJS和包含文件的數據是請求模塊如下所示:
define('SumanTestFiles',function(){
return new Object(["results/1450830340344/test5.txt","results/1450830340344/test6.txt"]);
});
然後循環遍歷每個文件路徑並使用jQuery/AJAX從服務器請求它:
define(['SumanTestFiles'],function(stf){
stf.forEach(function (testPath) {
$.get(testPath).done(function (msg) {...
so你可以看到testPaths沒有被篡改,它們毫無疑問只是「結果/ 1450830340344/test5.txt」,或類似的東西。
所以我的問題是,爲什麼路徑顯示在我的服務器上有兩個相鄰的'結果'字符串實例在路徑中?
它沒有很大的意義,因爲該請求應該只是
/results/1450830953375/test6.txt
不
/結果/結果/1450830953375/test6.txt
any hav hav有什麼想法?感謝
你在哪裏登錄請求路徑? – jmar777
謝謝,它記錄在服務器上,服務器輸出是3行以上(路徑名,路徑,href) –
我相信如果你改變'path.resolve('results',runId,testNum)''只是'path.resolve (runId,testNum)'這可能工作。它試圖解析路徑'/ results/runId/testNum',但你已經路由了'/ results'。不是100%確定,但爲什麼這是一個評論。 – aug