gpt4 book ai didi

javascript - 使用 Node.js 和 Socket.io 定位文件

转载 作者:行者123 更新时间:2023-12-01 02:30:02 24 4
gpt4 key购买 nike

我在使用 Node.js 和 Socket.io 的客户端本地包含时遇到问题。这可能是我一生中大部分时间对于文件请求的 PHP/Apache 心态。

在我的服务器上,我同样加载页面:

var express = require("express");
var app = express();
var path = require("path");
var server = require("http").createServer(app);
var io = require("socket.io")(server);
var mysql = require("mysql");

var port = process.env.PORT;
var ip = process.env.IP;

app.use(express.static(__dirname + "/client"));

//start opening socket connection handlers ...

我的文件也以同样的方式组织:

  • 游戏
    • 图书馆
      • bigInt
      • 三人
      • 等等...
    • 版本_1
      • 客户端
        • index.html
        • index.js
        • index.css
      • 服务器.js
      • 数据库.sql
    • 版本_2
    • 版本_3
    • 等等...

根据我想要运行的版本,我打开该版本的目录并运行其 server.js 文件。该行将客户端重定向到/client/index.html,行 app.use(express.static(__dirname + "/client")) 。但现在只能通过 <script></script> 访问客户端文件夹中的文件。或<link>标签,但不是我跨版本使用的库文件夹中的那些库。

如何更改代码以便能够从/version_x/client/index.html 访问库文件夹内的文件,同时仍将客户端定向到正确的 html 文件?

注意:由于这个问题,在过去几周我学习 Node.js 的过程中,我被迫仅使用受支持的 CDN 的库。

最佳答案

var ip = process.env.IP; 之后添加以下行:

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

它的作用是添加一条新的路由到您的应用程序服务器。现在,您可以通过 /libraries 访问 /games/libraries 文件夹中的所有文件。

它是如何工作的?您的 express 路由器根据提供的路径使用不同的中间件。此行告诉路由器,当对 /libraries 下的任何内容发出 HTTP 请求时,使用 static 中间件并从 ../libraries 提供文件英寸。

关于javascript - 使用 Node.js 和 Socket.io 定位文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48371052/

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