1

私はlocomotive.jsMVCプロジェクトを持っており、httpでリッスンしています。httpsでリッスンし、すべての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});

そして、私は今ちょっと立ち往生しています、何か助けはありますか?

ありがとう !

4

2 に答える 2

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 リダイレクト部分が含まれていません) が、それらはマイナーです。

于 2013-03-19T11:16:05.743 に答える
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);
于 2013-03-19T11:15:37.523 に答える