小编Shi*_*aul的帖子

检查集合是否包含Javascript中的列表

我有一套我已经添加了一个列表.

var a = new Set();
a.add([1]);
Run Code Online (Sandbox Code Playgroud)

现在我检查是否[1]存在于a:

a.has([1]);
> false
Run Code Online (Sandbox Code Playgroud)

根据规范,这可能会发生,因为如果要比较的两个对象的类型相同:

如果x和y引用同一个对象,则返回true.否则,返回false.

这也发生了:

[1] == [1]; 
> false
Run Code Online (Sandbox Code Playgroud)

因此,它可能是设置.has()==比较平等的(不知道虽然)..contains()JS中的Set()有像Java一样的方法吗?

javascript set ecmascript-6

6
推荐指数
2
解决办法
6047
查看次数

在不使用env var的情况下读取Heroku上的秘密配置文件

我正在使用带有NodeJS 的Google Cloud Pub Sub API,如此处所述。我正在使用Heroku运行服务器。

Node JS + Pub Sub页面上的示例代码要求我指定文件的路径:

pubsub = gcloud.pubsub({
    projectId: 'my-project',
    keyFilename: '/path/to/keyfile.json'
});
Run Code Online (Sandbox Code Playgroud)

我通常使用Heroku的config vars存储密钥和API密钥,但是在这种情况下,GCloud API似乎需要我指定文件的路径。因此,我需要将文件检入Heroku,但无需检入GitHub存储库。

我尝试了以下操作:将.gitignore文件推送到特定的远程服务器,以及如何将我的应用程序上传到github但删除敏感的授权信息?但问题在于,一旦我强制添加(git add -f keyfile.json)json文件并对其进行提交并创建一个新分支,我将无法将该提交推送至Heroku,因为执行此操作git push heroku master时会说Everything is up to date。无论如何,这似乎很混乱。必须有一种更清洁的方法来使Google Cloud与Heroku一起使用。

我该怎么办?

heroku node.js google-cloud-platform google-cloud-pubsub

5
推荐指数
1
解决办法
1864
查看次数

Heroku 是否会删除传入的 X-Forwarded-Proto 标头?

我正在尝试做什么

我有一个托管在 Heroku 上的 Web 应用程序,它使用 Django,域为(比如说)example.com。我想让所有传入http://example.com请求重定向到https://example.com.

我做了什么

我在 Django 中设置了SecurityMiddleware并设置SECURE_SSL_REDIRECT“将所有非 HTTPS 请求重定向到 HTTPS”。这似乎有效。True

问题

Heroku 充当我的 Django 应用程序的代理。因此,当 Heroku 负载均衡器收到 HTTPS 请求时,它(可能)使用非 HTTPS 连接路由到我的 Web 应用程序。这吓坏了我的应用程序,它再次将其重定向到 HTTPS,引发重定向循环。

解决这个问题的方法似乎是在 Django 中设置SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')为一个设置。这告诉我的应用程序:如果代理发送标头“HTTP_X_FORWARDED_PROTO”,并且其值为“https”,则信任该连接。我尝试过这个,它有效。

然而,Django 文档警告我,我应该确保我的代理删除传入的“X_FORWARDED_PROTO”标头,这是有道理的:如果恶意代理通过具有http值的连接发送此标头https,我的网络应用程序将被愚弄。

如何检查 Heroku 是否X_FORWARDED_PROTO从传入请求中删除标头?

django https reverse-proxy heroku

4
推荐指数
1
解决办法
2036
查看次数

如何以编程方式访问Wayback Machine?

我想做什么

对于网站列表,如果它们在那一年的任何时候存档,我想要按年份索引页面.所以,如果我在看example1.comexample2.com,我希望能够得到:

2010: example1.com, example2.com (the html from these archived pages)
2011: example1.com (example2.com, say, was not archived in 2011)
2012: example2.com
2013: example1.com, example2.com
Run Code Online (Sandbox Code Playgroud)

等等.

这是否可以使用Wayback Machine API?我看了他们的API列表,似乎我不能做我想做的事情.也许我错过了一些东西,但它似乎是一个相当合理的用例.还有其他建议吗?

web-scraping

4
推荐指数
2
解决办法
2376
查看次数

从 Gmail API 向本地主机端点发送推送通知

我想做什么

我正在使用 Gmail API + Google Pub/Sub API将推送通知发送到我在 EC2 实例上运行的节点服务器,每次我在watch()ed 收件箱上收到电子邮件。我将我的服务器的域添加到console.developers.google.com的 Push 部分,然后对于 Pub/Sub API,我创建一个订阅并添加 Push Endpoint URL。端点看起来是这样的:https://example.com/receive

我想做的是在本地进行测试。

问题

如何让 Google 向我的本地主机服务器发送推送通知?测试时,我希望将新电子邮件通知发送到http://localhost:8080/receive. 我正在考虑使用ngrok来公开 localhost - 但问题是每次 ngrok URL 更改时我都必须手动上传 Google 的证明(我拥有域),这是一个非常令人头疼的问题。

是否有更好的方式在我的本地主机服务器上接收新的电子邮件通知?

google-cloud-platform google-cloud-pubsub

3
推荐指数
1
解决办法
2678
查看次数