var path = require("path"); var express = require('express'); var ParseServer = require("../index").ParseServer; var definitions = require('./cli-definitions'); var program = require('./utils/commander'); var colors = require('colors'); program.loadDefinitions(definitions); program .usage('[options] '); program.on('--help', function(){ console.log(' Get Started guide:'); console.log(''); console.log(' Please have a look at the get started guide!') console.log(' https://github.com/ParsePlatform/parse-server/wiki/Parse-Server-Guide'); console.log(''); console.log(''); console.log(' Usage with npm start'); console.log(''); console.log(' $ npm start -- path/to/config.json'); console.log(' $ npm start -- --appId APP_ID --masterKey MASTER_KEY --serverURL serverURL'); console.log(' $ npm start -- --appId APP_ID --masterKey MASTER_KEY --serverURL serverURL'); console.log(''); console.log(''); console.log(' Usage:'); console.log(''); console.log(' $ parse-server path/to/config.json'); console.log(' $ parse-server -- --appId APP_ID --masterKey MASTER_KEY --serverURL serverURL'); console.log(' $ parse-server -- --appId APP_ID --masterKey MASTER_KEY --serverURL serverURL'); console.log(''); }); program.parse(process.argv, process.env); var options = {}; if (program.args.length > 0 ) { var jsonPath = program.args[0]; jsonPath = path.resolve(jsonPath); options = require(jsonPath); console.log(`Configuation loaded from ${jsonPath}`) } if (!program.appId || !program.masterKey || !program.serverURL) { program.outputHelp(); console.error(""); console.error(colors.red("ERROR: appId, masterKey and serverURL are required")); console.error(""); process.exit(1); } var options = Object.keys(definitions).reduce(function (options, key) { if (program[key]) { options[key] = program[key]; } return options; }, options); var app = express(); var api = new ParseServer(options); app.use(options.mountPath, api); var port = process.env.PORT || 1337; app.listen(port, function() { for (let key in options) { var value = options[key]; if (key == "masterKey") { value = "***REDACTED***"; } console.log(`${key}: ${value}`); } console.log(''); console.log('parse-server running on http://localhost:'+ port + options.mountPath); });