以(JavaScript)履行代码获取我的操作的服务器URL

问题描述 投票:0回答:1

我正在使用actionssdk,并使用Javascript和node.js + Express构建我的Action实现。我正在寻找一种获取实现所在服务器的url(协议+主机名+端口)的方法。

是否有一种简单的方法?例如。在MAIN意图中?我可以使用某些conv属性吗?我可以在req意图中保留MAIN参数,从中可以推断出主机名等吗?

const express = require('express');
const expressApp = express();
const { actionssdk, ... } = require('actions-on-google');

const app = actionssdk({
  ordersv3: true,
  clientId: ...
});

expressApp.post('/fulfilment', app);

app.intent('actions.intent.MAIN',  (conv) => {
  let myUrl: string = ... // ???????
  ...
});

background:显然我知道我将实现代码部署到哪里。但是我有一个可重复使用的实现代码模板,我想在其中引用主机url,并且我不想在其中键入每次我开发新的操作时都需要手动操作。)

node.js url actions-on-google fulfillment
1个回答
0
投票

您可以通过Framework Metadata来访问中间件中的请求对象,默认情况下,该类型为BuiltinFrameworkMetadata类型,其中包含objects used by Express

例如,您可以像这样使用它,它将在每个请求之前运行:

conv.middleware((conv, framework) => {
  console.log(framework.express.request.headers.host)
})
© www.soinside.com 2019 - 2024. All rights reserved.