【发布时间】:2012-10-22 13:48:11
【问题描述】:
我有一个非常普通的 Express 应用程序 - 简单的服务器逻辑、视图、大量客户端 JS。 我必须做很多 AJAX 请求。其中一些需要通过 HTTPS 协议保护(一些不需要)。
所以,我的服务器应该同时使用 HTTP 和 HTTPS。 它也应该适用于本地机器(通常使用 nodemon 运行)和 Heroku。
据我了解,Heroku 为您提供了一个您可以监听的端口 (process.env.PORT),并通过代理处理所有请求(因此,您的应用程序正在监听此端口,而无需担心 proto - 对吧?)
那么,我做对了吗?我应该为开发机器和 Heroku 提供一些不同的代码?
喜欢
...
app = express()
...
if process.env.NODE_ENV == 'production'
app.listen(process.env.PORT)
else
https = require('https')
http = require('http')
http.createServer(app).listen(5080) # some local port
options = {
key: fs.readFileSync('key.pem'),
cert: fs.readFileSync('cert.pem') # my self-signed files
}
https.createServer(options, app).listen(5443) # some different local port
这是处理这个问题的正确方法吗?
【问题讨论】: