我在docker容器中运行了一个Express API,我的一个路由为用户提供了一个HTML页面。
app.get('/trilateration/', function(req,res){
res.sendFile(path.join( __dirname,'trilateration','/Trilateration.html'));
});这个页面有它的javascript代码,这段代码调用express API来获取数据。我在JS中设置express服务器api如下:
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主机是为该页面提供服务的同一服务器。
任何帮助都是非常感谢的。
发布于 2021-07-24 14:33:23
您不能从浏览器/客户端环境访问服务器环境变量。
要实现以下目标:
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))/data,但它可以是任何描述性的。app.get('/data', (req, res) => res.json(process.env.serverHost));注意:确保您的环境文件中有该环境变量,并且您正在使用dotenv包读取环境变量。
如果你有任何问题,请不要犹豫
https://stackoverflow.com/questions/68503642
复制相似问题