如何访问Express应用程序实例以在Probot应用程序中设置CORS来源?

精英种族大象

Probot文档提到可以像Vanilla Express服务器中一样使用路由。

我想为这些路由设置CORS原始标头。在香草Express服务器中,我将使用cors软件包:

const cors = require('cors')

...

app.use(cors())

但是probot应用程序不具有该功能use

module.exports = app => {
  app.use(cors(corsOptions));
// ...

导致错误:

ERROR (event): app.use is not a function
    TypeError: app.use is not a function

如何设置CORS?

精英种族大象

您必须以编程方式启动该应用程序。这样,您可以在Probot加载后但Probot开始运行之前访问Express应用:

const cors = require("cors");
const bodyParser = require("body-parser");
const { Probot } = require("probot");
const { corsOptions } = require("./src/util/init-server.js");
const endpoint = require("./src/controller/endpoint");
const { handleWhatever } = require("./src/controller/controller");


// https://github.com/probot/probot/blob/master/src/index.ts#L33
const probot = new Probot({
  id: process.env.APP_ID,
  port: process.env.PORT,
  secret: process.env.WEBHOOK_SECRET,
  privateKey: process.env.PRIVATE_KEY,
  webhookProxy: process.env.WEBHOOK_PROXY_URL,
});


const probotApp = app => {
  /** Post a comment on new issue */
  app.on("issues.opened", async context => {
    const params = context.issue({ body: "Hello World!" });
    return context.github.issues.createComment(params);
  });

  /** --- Express HTTP endpoints --- */
  const router = app.route("/api");
  router.use(cors(corsOptions)); // set CORS here
  router.use(bodyParser.json());
  router.use(bodyParser.urlencoded({ extended: true }));
  // router.set("trust proxy", true);
  // router.use(require('express').static('public')); // Use any middleware
  router.get("/ping", (req, res) => res.send("Guten Tag! " + new Date()));
  router.post(endpoint.handleWhatever , handleWhatever );
};


/** --- Initialize Express app by loading Probot --- */
probot.load(probotApp);

/* ############## Express instance ################ */
const app = probot.server;
const log = probot.log;
app.set("trust proxy", true);

/** --- Run Probot after setting everything up --- */
Probot.run(probotApp);

这里有一些GitHub问题和文档可以帮助我回答我的问题:

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

访问Azure应用程序设置中的嵌套json应用程序设置将返回null

来自分类Dev

如何访问由MDM设置的UWP应用程序设置?

来自分类Dev

从Java Web应用程序中的Serlvet访问对象的实例

来自分类Dev

在Sinatra应用程序中访问实例变量

来自分类Dev

Openbox中每个实例的应用程序设置

来自分类Dev

如何在EmberJS应用程序中启用CORS?

来自分类Dev

如何获得用于CloudFoundry中运行的Node-Express应用程序的实例内存?

来自分类Dev

如何在Android应用程序中的任何位置使实例可用或可访问

来自分类Dev

在JavaFX中获取应用程序实例

来自分类Dev

Qt中的单实例应用程序

来自分类Dev

如何在OS X的Qt应用程序中设置足以分发的应用程序图标?

来自分类Dev

如何以编程方式在应用程序设置中打开应用程序许可窗口

来自分类Dev

如何在Ubuntu Touch应用程序的.desktop文件中设置应用程序图标?

来自分类Dev

如何通过功能应用程序中的应用程序设置来解析KeyVault对机密的引用?

来自分类Dev

如何在Ubuntu Touch应用程序的.desktop文件中设置应用程序图标?

来自分类Dev

如何在Cloud SQL实例中设置授权的App Engine应用程序

来自分类Dev

Json在Express应用程序中解析

来自分类Dev

如何从Bluemix应用程序访问容器?

来自分类Dev

如何在xamarin android应用程序中创建该应用程序设置,以在该应用程序的Android设置/应用程序/应用程序设置中显示?

来自分类Dev

如何在Node.js和Express.js应用程序中设置HttpOnly标志?

来自分类Dev

在Android应用程序中访问localhost

来自分类Dev

在Android应用程序中访问localhost

来自分类Dev

Web 应用程序中的访问控制

来自分类Dev

在Express中挂载应用程序如何工作

来自分类Dev

如何装饰Express中的应用程序方法?

来自分类Dev

在ember-cli应用程序中设置集成测试-如何访问module()和visit()?

来自分类Dev

在ember-cli应用程序中设置集成测试-如何访问module()和visit()?

来自分类Dev

如何在我的应用程序中找到StackOverflowException的来源

来自分类Dev

如何在我的应用程序中找到StackOverflowException的来源

Related 相关文章

  1. 1

    访问Azure应用程序设置中的嵌套json应用程序设置将返回null

  2. 2

    如何访问由MDM设置的UWP应用程序设置?

  3. 3

    从Java Web应用程序中的Serlvet访问对象的实例

  4. 4

    在Sinatra应用程序中访问实例变量

  5. 5

    Openbox中每个实例的应用程序设置

  6. 6

    如何在EmberJS应用程序中启用CORS?

  7. 7

    如何获得用于CloudFoundry中运行的Node-Express应用程序的实例内存?

  8. 8

    如何在Android应用程序中的任何位置使实例可用或可访问

  9. 9

    在JavaFX中获取应用程序实例

  10. 10

    Qt中的单实例应用程序

  11. 11

    如何在OS X的Qt应用程序中设置足以分发的应用程序图标?

  12. 12

    如何以编程方式在应用程序设置中打开应用程序许可窗口

  13. 13

    如何在Ubuntu Touch应用程序的.desktop文件中设置应用程序图标?

  14. 14

    如何通过功能应用程序中的应用程序设置来解析KeyVault对机密的引用?

  15. 15

    如何在Ubuntu Touch应用程序的.desktop文件中设置应用程序图标?

  16. 16

    如何在Cloud SQL实例中设置授权的App Engine应用程序

  17. 17

    Json在Express应用程序中解析

  18. 18

    如何从Bluemix应用程序访问容器?

  19. 19

    如何在xamarin android应用程序中创建该应用程序设置,以在该应用程序的Android设置/应用程序/应用程序设置中显示?

  20. 20

    如何在Node.js和Express.js应用程序中设置HttpOnly标志?

  21. 21

    在Android应用程序中访问localhost

  22. 22

    在Android应用程序中访问localhost

  23. 23

    Web 应用程序中的访问控制

  24. 24

    在Express中挂载应用程序如何工作

  25. 25

    如何装饰Express中的应用程序方法?

  26. 26

    在ember-cli应用程序中设置集成测试-如何访问module()和visit()?

  27. 27

    在ember-cli应用程序中设置集成测试-如何访问module()和visit()?

  28. 28

    如何在我的应用程序中找到StackOverflowException的来源

  29. 29

    如何在我的应用程序中找到StackOverflowException的来源

热门标签

归档