困惑于从AJAX发送到我的Express服务器的请求path

我有一个Node.js快速服务器的基本设置

我正在尝试使用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/而不是just /results

我正在使用RequireJS和包含要请求的文件的数据的模块如下所示:

  define('SumanTestFiles',function(){ return new Object(["results/1450830340344/test5.txt","results/1450830340344/test6.txt"]); }); 

然后循环遍历每个文件path并使用jQuery / AJAX从服务器请求它:

 define(['SumanTestFiles'],function(stf){ stf.forEach(function (testPath) { $.get(testPath).done(function (msg) {... 

所以你可以看到testPaths没有被篡改,他们毫无疑问只是简单的“结果/ 1450830340344 / test5.txt”,或者类似的东西。

所以我的问题是,为什么path显示在我的服务器与path中的两个相邻的'结果'string实例?

这没有什么意义,因为请求应该是

/results/1450830953375/test6.txt

/results/results/1450830953375/test6.txt

有人有主意吗? 谢谢

这对我来说是新的,因为我对web开发相当陌生

简短的答案是,而不是这个:

  define('SumanTestFiles',function(){ return new Object(["results/1450830340344/test5.txt","results/1450830340344/test6.txt"]); }); 

我需要这样做

  define('SumanTestFiles',function(){ return new Object(["/results/1450830340344/test5.txt","/results/1450830340344/test6.txt"]); }); 

否则,我的服务器的AJAX请求path将相对于search栏中的URL,而不是绝对的。 神圣的废话,这是令人困惑的。