gpt4 book ai didi

javascript - 客户端-服务器架构结构(带 Node js)- 将 index.html 文件放在哪里?

转载 作者:搜寻专家 更新时间:2023-11-01 00:39:00 26 4
gpt4 key购买 nike

我已经构建了一个服务器客户端应用程序(nodejs - 在服务器上,angular - 在客户端)。

我曾经将我的所有代码都放在一个项目(一个文件夹)中,但后来我发现按逻辑将它划分为一个服务器文件夹和一个客户端文件夹对我来说更有意义。

我渴望断开服务器代码和客户端代码之间的所有依赖关系,因为每一方都可以独立存在。

问题:

  1. 我应该把 index.html 放在哪里?

它显然与客户端有关但是服务器(expressJS)在服务器加载它时。

  1. 假设我将这个 index.html 文件放在客户端文件夹中,如下图所示。

我怎样才能让 server.js 知道它?

此代码无效:

var app = express();
app.use(bodyParser.json());
app.use('/',express.static(__dirname));

app.use('/scripts', express.static(path.join(__dirname,
'node_modules')));

app.get('/', function (req, res) {
res.sendFile(express.static(path.join(__dirname + '../client/index.html')));
});

enter image description here

最佳答案

通常对于 Express 应用程序,您会有一个包含您的客户端 Assets 的“公共(public)”文件夹,index.html 就是其中之一。

app.use('/',express.static(path.join(__dirname, '/public')));

然后,运行 Node 服务器,打开浏览器并将其指向该服务器,express 将从“public”文件夹中提供“index.html”。

修复步骤

  • client 文件夹重命名为 public
  • public 拖到 server 文件夹中,使其类似于 server/public
  • app.use('/',express.static(__dirname)); 更改为 app.use('/', express.static(path.join(__dirname, '/public')));

请注意:应避免使用app.use('/',express.static(__dirname));,您将整个服务器目录提供给公众。

如果您想更好地了解项目布局。看看 yoeman.io,特别是它有 express 的项目模板。

http://yeoman.io/

Yeoman helps you to kickstart new projects, prescribing best practices and tools to help you stay productive.

关于javascript - 客户端-服务器架构结构(带 Node js)- 将 index.html 文件放在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41508031/

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