我试图通过HTTPS获取Post请求。发布请求来自http请求,但在来自HTTPS时会挂起。 HTTPS部分用于向页面加载内容,但不会回复帖子请求。 http处理帖子没有问题,但是我需要它来通过HTTPS,因为我认为它无论如何都应该如此,这就是Android的HttpURLConnection所需要的。< / p>
router.post('/users', function(req, res){
var user = req.body;
Users.addUsers(user, function(err, user){
if(err){
throw err;
}else{
res.json(user);
}
});
});
var pkey = fs.readFileSync(path.join(__dirname, '/ssl/37718250_localhost.key'));
var pcert = fs.readFileSync(path.join (__dirname, '/ssl/37718250_localhost.cert'));
var options = {
key: pkey,
cert: pcert
};
var server = https.createServer(options, function (req, res) {
}).listen(443);
答案 0 :(得分:1)
如果您查看app.listen
的文档,您会直接看到它:
app.listen = function() {
var server = http.createServer(this);
return server.listen.apply(server, arguments);
};
https
模块具有类似的语法,因此您可以这样做:
var pkey = fs.readFileSync(path.join(__dirname, '/ssl/37718250_localhost.key'));
var pcert = fs.readFileSync(path.join (__dirname, '/ssl/37718250_localhost.cert'));
var options = {
key: pkey,
cert: pcert
};
var server = https.createServer(options, app);
server.listen(443);
Express app
实际上只是function(request, response)
形式的一个功能,因此可以传递给http.createServer
和https.createServer
。
答案 1 :(得分:0)
您正在传递无操作请求处理函数。通过您的快递应用实例:
var server = https.createServer(options, app).listen(443);