Настройка Parse-Server с HTTPS в Express

Запуск Express.js + Parse Server и попытка настроить HTTPS на маршруте Parse API с помощью библиотеки JS 'https'.

  • Фрагмент кода

     var https = require ( 'https');
    ....
    https.createServer (config.certificate, app) .listen (порт, функция () {
    console.log ('parse-server-example работает на порту' + порт + '.');
    });
    // Это включит сервер реального времени Live Query
    ParseServer.createLiveQueryServer (https);
    
  • Действия по воссозданию

    1. Установите правильные библиотеки

      Использование: Node (4.5), https (1.0.0)

    2. Запустите «node index.js»

  • Ожидаемые результаты

    Сервер должен запуститься без проблем работает на HTTPS-порту https: // mydomainhere: 4444 / parse

  • Фактический результат

     ~ / parse / node_modules / parse-server / lib / ParseServer.js: 401
    бросить ошибку;
    ^
    TypeError: this._server.once не является функцией
    на новом WebSocketServer (~ / parse / node_modules / parse-server / node_modules / ws / lib / WebSocketServer.js: 78: 18)
    в новом ParseWebSocketServer (~ / parse / node_modules / parse-server / lib / LiveQuery / ParseWebSocketServer.js: 26: 13)
    в новом ParseLiveQueryServer (~ / parse / node_modules / parse-server / lib / LiveQuery / ParseLiveQueryServer.js: 103: 33)
    в Function.createLiveQueryServer (~ / parse / node_modules / parse-server / lib / ParseServer.js: 429: 14)
    на объекте. (~ / parse / parse.js: 63: 13)
    в Module._compile (module.js: 409: 26)
    в Object.Module._extensions..js (module.js: 416: 10)
    в Module.load (module.js: 343: 32)
    в Function.Module._load (module.js: 300: 12)
    в Function.Module.runMain (module.js: 441: 10)
    
  • Настройка среды

    Использование: Node (4.5), https (1.0.0), parse-server («2.2.22»), Linux Centos

0
задан 3 October 2016 в 17:46
2 ответа

У меня была та же проблема, и я сообщил о проблеме с сервером синтаксического анализа.

Flovilmart помог с этим и выяснил, что правильный способ сделать это - объявить новую переменную для https-сервера. В вашем примере вы должны использовать:

var https = require ('https'); .... var httpsServer = https.createServer (config.certificate, app) .listen (port, function () { console.log ('parse-server-example, работающий на порту' + порт + '.'); }); // Это включит сервер реального времени Live Query ParseServer.createLiveQueryServer (httpsServer);

вы можете увидеть полную беседу здесь: https://github.com/ParsePlatform/parse-server/issues/3165#event-881061654

0
ответ дан 5 December 2019 в 09:29

Хотя этот вопрос задавался давно, я Я пытаюсь ответить на этот вопрос для будущих читателей, поскольку не было опубликовано подходящего ответа.

var express = require('express');
var ParseServer = require('parse-server').ParseServer;
var app = express();
var fs = require('fs');

var api = new ParseServer({
    databaseURI: 'mongodb://user:pass@localhost:27017/parse', // Connection string for your MongoDB database
    appId: 'your app id',
    masterKey: 'your app master key', // Keep this key secret!
    serverURL: 'https://localhost:1337/parse' // Don't forget to change to https if needed
});

var options = {
    key: fs.readFileSync('/etc/letsencrypt/live/example.com/privkey.pem'),
    cert: fs.readFileSync('/etc/letsencrypt/live/example.com/fullchain.pem')
};

// Serve the Parse API on the /parse URL prefix
app.use('/parse', api);

var httpsServer = require('https').createServer(options,app);

httpsServer.listen(1337, function() {
    console.log('parse-server-example running on port 1337.');
});
0
ответ дан 5 December 2019 в 09:29

Теги

Похожие вопросы