gpt4 book ai didi

javascript - 为什么在使用 sendFile() 方法为 node.js 中的两条路由提供静态文件时出现错误

转载 作者:行者123 更新时间:2023-11-30 14:07:38 25 4
gpt4 key购买 nike

我试图为两条路由“/”和“/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

let express = require('express');
let app = express();

app.use(express.static('public'));

app.get('/', function(req,res){
res.sendFile('index.html');
res.end();
})
app.get('/test', function(req,res){
res.sendFile('index.html');
res.end();
})
app.listen(3000);

index.html 文件位于公用文件夹中。它用作静态容器。

最佳答案

如果你想为 res.sendFile 使用相对路径,您需要指定根选项。使用以下代码来提供 index.html,假设它位于与 Node 应用程序源相同的目录中。

你可以用__dirname得到当前目录.

app.get('/', function(req,res){
res.sendFile('index.html',{root:__dirname});
})
app.get('/test', function(req,res){
res.sendFile('index.html',{root:__dirname});
})

另请引用node.js TypeError: path must be absolute or specify root to res.sendFile [failed to parse JSON]

(感谢 Saurabh Mistry 的引用)

关于javascript - 为什么在使用 sendFile() 方法为 node.js 中的两条路由提供静态文件时出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55095727/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com