无法通过node.js中的post方法路由https请求

时间:2016-01-28 03:01:07

标签: node.js https routes

我试图通过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);

2 个答案:

答案 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.createServerhttps.createServer

答案 1 :(得分:0)

您正在传递无操作请求处理函数。通过您的快递应用实例:

var server = https.createServer(options, app).listen(443);