2013-03-19 63 views
1

我有一个locomotive.js MVC项目,它在HTTP上侦听。 我想在https上收听,并将所有http重定向到https。locomotive.js听http和https

我找不到的node.js的createServer,我找到的唯一的代码是:下/lib/node_modules/locomotive/lib/locomotive/cli/server.js

console.log('booting app at %s in %s environment', dir, env); 

locomotive.boot(dir, env, function(err, server) { 
    if (err) { 
    throw err; 
    } 

    server.listen(port, address, function() { 
    var addr = this.address(); 
    console.log('listening on %s:%d', addr.address, addr.port, addr); 
    }); 
}); 

改为:

console.log('booting app at %s in %s environment', dir, env); 
var crypto = require('crypto'), 
     fs = require("fs"); 
var privateKey = fs.readFileSync('/privatekey.pem').toString(); 
var certificate = fs.readFileSync('/certificate.pem').toString(); 
var https = require('https'); 
var credentials = crypto.createCredentials({key: privateKey, cert: certificate}); 

和我有点卡住了,有什么帮助吗?

谢谢!

回答

1

这不是很好的测试,但它似乎工作:

// start.js 
    var locomotive = require('locomotive'); 
    var app   = new locomotive.Locomotive(); 
    var http  = require('http'); 
    var https  = require('https'); 
    var fs   = require('fs'); 

    app.boot(__dirname, 'development', function(err, server) { 
    var options = { 
     key : fs.readFileSync('server.key'), 
     cert: fs.readFileSync('server.crt') 
    }; 
    https.createServer(options, server).listen(port, address); 
    }); 

有几个问题与它(硬编码的目录名称和环境,它不包括HTTP重定向部分),但这些都是次要的。

0

,我将在这里发布我的回答,如果有人看到了这个问题:

var fs = require("fs"); 

var options = { 
    key: fs.readFileSync('/privatekey.pem'), 
    cert: fs.readFileSync('/certificate.pem') 
}; 

var server = https.createServer(options, this); 
return server.listen.apply(server, arguments);