如何指向节点服务器提供索引文件1路径?

Leo*_*ban 2 javascript node.js express

这是我的文件夹结构:

我有src文件夹里面的所有内容,这src/index.html也是我想要指出的.我的节点服务器文件在src/server/server.js

在此输入图像描述

当我运行正确的node src/server/server命令时,我收到以下错误:

const express = require('express');

const app = express();

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

app.get('/category', (req, res) => {
    res.end('Categories');
});

app.listen(8999, (res) => {
    console.log(res);
});
Run Code Online (Sandbox Code Playgroud)

错误:ENOENT:没有这样的文件或目录,stat'/Users/leongaban/Projects/CompanyName/appName/src/server/index.html'

所以错误消息告诉我我需要再增加一个文件夹,所以想象如下:

app.get('/', (req, res) => {
    res.sendFile('../index.html', { root: __dirname });
});
Run Code Online (Sandbox Code Playgroud)

但是现在我收到了一个Forbidden错误:

ForbiddenError:禁止

Mor*_*Paz 6

您收到Forbidden错误的原因是因为Node.js发现相对路径是../恶意的(例如,如果您根据用户输入获取文件,他可能会尝试访问您不希望他访问的文件系统上的文件).

所以你应该使用像这个问题中指出的路径模块

您的代码应该使用如下路径:

var path = require('path');
res.sendFile(path.resolve(__dirname + '../index.html'));
Run Code Online (Sandbox Code Playgroud)