我有一套我已经添加了一个列表.
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一样的方法吗?
我正在使用带有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 上的 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
从传入请求中删除标头?
对于网站列表,如果它们在那一年的任何时候存档,我想要按年份索引页面.所以,如果我在看example1.com
和example2.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列表,似乎我不能做我想做的事情.也许我错过了一些东西,但它似乎是一个相当合理的用例.还有其他建议吗?
我正在使用 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 的证明(我拥有域),这是一个非常令人头疼的问题。
是否有更好的方式在我的本地主机服务器上接收新的电子邮件通知?