Запуск Express.js + Parse Server и попытка настроить HTTPS на маршруте Parse API с помощью библиотеки JS https.
Фрагмент кода
var https = require('https');
....
https.createServer(config.certificate,app).listen(port,function() {
console.log('parse-server-example running on port ' + port + '.');
});
// This will enable the Live Query real-time server
ParseServer.createLiveQueryServer(https);
Шаги по воссозданию
Установите правильные библиотеки
Использование: Node (4.5), https (1.0.0)
Запустите "node index.js"
Ожидаемые результаты
Сервер должен без проблем запускаться на HTTPS-порту https://mydomainhere:4444/parse
Фактический результат
~/parse/node_modules/parse-server/lib/ParseServer.js:401
throw err;
^
TypeError: this._server.once is not a function
at new WebSocketServer (~/parse/node_modules/parse-server/node_modules/ws/lib/WebSocketServer.js:78:18)
at new ParseWebSocketServer (~/parse/node_modules/parse-server/lib/LiveQuery/ParseWebSocketServer.js:26:13)
at new ParseLiveQueryServer (~/parse/node_modules/parse-server/lib/LiveQuery/ParseLiveQueryServer.js:103:33)
at Function.createLiveQueryServer (~/parse/node_modules/parse-server/lib/ParseServer.js:429:14)
at Object. (~/parse/parse.js:63:13)
at Module._compile (module.js:409:26)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Function.Module.runMain (module.js:441:10)
Настройка среды
Использование: Node (4.5), https (1.0.0), parse-server ("2.2.22"), Linux Centos.
Хотя этот вопрос был задан давно, я пытаюсь ответить на этот вопрос для будущих читателей, поскольку подходящего ответа опубликовано не было.
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.');
});
У меня была такая же проблема, и я сообщил о проблеме с сервером синтаксического анализа.
Flovilmart помог с этим и обнаружил, что правильный способ сделать это - объявить новую переменную для https-сервера. В вашем примере вы должны использовать:
var https = require ('https'); .... var httpsServer = https.createServer (config.certificate, app) .listen (port, function () {console.log ('parse-server-example running on port' + port + '.');})) ; // Это включит сервер реального времени Live Query ParseServer.createLiveQueryServer (httpsServer);
вы можете увидеть полную беседу здесь: https://github.com/ParsePlatform/parse-server/issues/3165#event-881061654