首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Express提供的HTML页面中设置动态URL

在Express提供的HTML页面中设置动态URL
EN

Stack Overflow用户
提问于 2021-07-24 02:26:01
回答 1查看 33关注 0票数 1

我在docker容器中运行了一个Express API,我的一个路由为用户提供了一个HTML页面。

代码语言:javascript
复制
app.get('/trilateration/', function(req,res){
    res.sendFile(path.join( __dirname,'trilateration','/Trilateration.html'));

});

这个页面有它的javascript代码,这段代码调用express API来获取数据。我在JS中设置express服务器api如下:

代码语言:javascript
复制
var serverHost='http://rtlsdatabase:3014'
var urlpos =  serverHost + "/pos/";
var urlrpi = serverHost + "/rpi/";
var urltooling = serverHost + "/tooling/";
var urlBlueprint = serverHost + "/blueprint/";
var urlDimensions = serverHost + "/dimensions/"

我正在使用一个.env文件将变量传递给docker容器,并在Express中使用它,但是HTML页面和javascript代码不能使用它。

如何将服务器URL动态传递给这个"serverHost“变量?我想在.env文件中设置它,甚至以另一种方式获取它,因为url主机是为该页面提供服务的同一服务器。

任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

发布于 2021-07-24 14:33:23

您不能从浏览器/客户端环境访问服务器环境变量。

要实现以下目标:

  1. 浏览器/客户端必须向服务器发出GET请求才能获得该值。HTML中的javascript代码可以使用fetch发出请求,如下所示的示例代码:

代码语言:javascript
复制
fetch('http://url-to-express-server/data')
  .then(res => res.json())
  // the data here is the value sent from the server
  .then((data => console.log(data))

  1. express服务器必须公开一个从其环境变量返回数据段的端点。下面的示例代码将端点定义为/data,但它可以是任何描述性的。

代码语言:javascript
复制
app.get('/data', (req, res) => res.json(process.env.serverHost));

注意:确保您的环境文件中有该环境变量,并且您正在使用dotenv包读取环境变量。

如果你有任何问题,请不要犹豫

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68503642

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档