javascript - Node.js 在远程网络上提供 HTML 文件

标签 javascript node.js networking server

我是 Node.js 新手,所以我不确定是否可以完成我想要完成的事情。这是我的配置:

我有一个 Node.js 服务器在我家庭网络上的 Raspberry Pi 上运行。我在外部 IP 上有一个 HTML 文件。我希望在此 HTML 文件上呈现 React 组件。

据我所知,人们使用 Node 服务器在本地 HTML 文件上显示 js,因此路径通常如下所示,假设目录名为“dir”:

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

// Static Routes
app.use('/dist', express.static(path.join(__dirname, 'dir')));

// App Route
app.get('/', (req, res, next) => res.sendFile(path.join(__dirname, 
'index.html')));

据我所知,它传输在先前指定路径中找到的 HTML 文件。但这要转移到哪里呢?有什么方法可以根据外部 IP + 用户 + 密码和文件路径指定路径名?

最佳答案

Which, to my knowledge, transfers the HTML file found at the previously specified path. But where is this transferred to?

它在客户端请求时(即不是在服务器启动时)将文件内容从磁盘传输到客户端的网络连接。

Any way I can specify the path name based on an external IP + user + password, and file path?

不适用于 express.static。如果你想让你的服务器提供一个外部页面(代理),你可以这样做:https://stackoverflow.com/a/10435819/7011366 .由于您可以访问 url 和 cookie,因此您可以使用路径/用户/密码做任何您喜欢的事情。

app.post('/my_url', function(req, res) {
  var options = {
    host:   MY_DOMAIN,
    path:   '/' + req.query.username,
    method: 'GET',
  };
  var req = http.request(options, function(res) {
    // etc...
    // send response to client
  }).on('error', function(e) {
    // handle error...
  }).end();
});

上面的例子在每次请求时都会向外部页面发出请求。如果您不想这样,您可以将其存储在内存中并仅定期更新。

let myHtml = "";
let fn = () => {
  var options = {
    host:   MY_DOMAIN,
    path:   '/' + req.query.username,
    method: 'GET',
  };
  var req = http.request(options, function(res) {
    // etc...
    // save response to myHtml as string
  }).on('error', function(e) {
    // handle error...
  }).end();
};
setInterval(fn, 60000);
fn();
app.post('/my_url', function(req, res) {
  res.end(myHtml);
});

关于javascript - Node.js 在远程网络上提供 HTML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52748011/

相关文章:

javascript - 3D 模型同比例,三个 JS

javascript - 在外部 Javascript 文件中使用传递的变量

python - 运行 docker 时未启用 ipv4 网络

java - 如何在java中保存通过网络接收到的图像

javascript - 神秘的 javascript 行为 : unequal equals

javascript - 使用 PHP 在莫里斯图中显示数据

javascript - 在 excel4node 中填充 bgColor 单元格的示例

algorithm - Dijkstra算法计算N条最短路径

javascript - 在 IOS 设备上填充快速类型栏选项

javascript - 如何使用 Node.js 查询 Mongodb?