Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用sendFile()方法为node.js中的两个路由提供静态文件时,为什么会出现错误_Javascript_Node.js_Express - Fatal编程技术网

Javascript 使用sendFile()方法为node.js中的两个路由提供静态文件时,为什么会出现错误

Javascript 使用sendFile()方法为node.js中的两个路由提供静态文件时,为什么会出现错误,javascript,node.js,express,Javascript,Node.js,Express,我尝试发送两个路由“/”和“/test”的静态html文件。 它正在为“/”路由工作,但不是“/test”/ 我遇到以下错误: TypeError: path must be absolute or specify root to res.sendFile at ServerResponse.sendFile (E:\sairam\javascript\node\Node middleware\node_modules\express\lib\response.js:421:11)

我尝试发送两个路由“/”和“/test”的静态html文件。 它正在为“/”路由工作,但不是“/test”/

我遇到以下错误:

TypeError: path must be absolute or specify root to res.sendFile
    at ServerResponse.sendFile (E:\sairam\javascript\node\Node middleware\node_modules\express\lib\response.js:421:11)
    at E:\sairam\javascript\node\Node middleware\index.js:11:9
    at Layer.handle [as handle_request] (E:\sairam\javascript\node\Node middleware\node_modules\express\lib\router\layer.js:95:5)
    at next (E:\sairam\javascript\node\Node middleware\node_modules\express\lib\router\route.js:137:13)
    at Route.dispatch (E:\sairam\javascript\node\Node middleware\node_modules\express\lib\router\route.js:112:3)
    at Layer.handle [as handle_request] (E:\sairam\javascript\node\Node middleware\node_modules\express\lib\router\layer.js:95:5)
    at E:\sairam\javascript\node\Node middleware\node_modules\express\lib\router\index.js:281:22
    at Function.process_params (E:\sairam\javascript\node\Node middleware\node_modules\express\lib\router\index.js:335:12)
    at next (E:\sairam\javascript\node\Node middleware\node_modules\express\lib\router\index.js:275:10)
    at SendStream.error (E:\sairam\javascript\node\Node middleware\node_modules\serve-static\index.js:121:7)
这是我的app.js
index.html文件位于公用文件夹中。。这是用作静态容器的am。

如果要使用的相对路径,则需要指定root选项。使用以下代码提供
index.html
,假设它与节点应用程序源位于同一目录中

您可以使用获取当前目录

app.get('/',函数(req,res){
res.sendFile('index.html',{root:uu dirname});
})
app.get('/test',函数(req,res){
res.sendFile('index.html',{root:uu dirname});
})
也请参考

(感谢Saurabh Mistry提供参考)

请尝试以下方法:

app.get(['/','test'], function(req,res){
    res.sendFile(__dirname + '/public/'+ 'index.html');
});
可能重复的
app.get(['/','test'], function(req,res){
    res.sendFile(__dirname + '/public/'+ 'index.html');
});