0

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

有没有一种简单的方法可以做到这一点?例如在MAIN意图?有一些conv我可以使用的属性吗?我可以req在-intent 中获取一个-parameter 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 = ... // ???????
  ...
});

背景:显然我知道自己在哪里部署了我的实现代码。但是我有一个可重复使用的实现代码模板,我想在其中引用主机 url,并且我不想在每次开发时手动输入新动作)。

4

1 回答 1

1

您可以通过框架元数据访问中间件中的请求对象,框架元数据默认为BuiltinFrameworkMetadata类型,其中包含Express 使用的对象

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

app.middleware((conv, framework) => {
  console.log(framework.express.request.headers.host)
})
于 2019-12-05T22:42:34.407 回答