watson node developer crear con node.js parse.com ibm-cloud parse-server

node.js - node - La migración del servidor Parse a IBM BlueMix



watson assistant node js (1)

Estoy tratando de ejecutar el servidor de parse con nodejs en ibm bluemix pero está arrojando un error en el archivo de análisis PromiseRouter.

PromiseRouter.js:48 throw _iteratorError; ^ ReferenceError: Symbol is not defined

¿Cómo puedo resolver esto?

Mi aplicación .js

var express = require(''express''); var ParseServer = require(''parse-server'').ParseServer; var app = express(); var port = process.env.PORT || 1337; // Specify the connection string for your mongodb database // and the location to your Parse cloud code var api = new ParseServer({ databaseURI: ''mongodb://IBM_MONGO_DB'', cloud: ''./cloud/main.js'', // Provide an absolute path appId: ''MYAPPID'', masterKey: ''MYMASTER_KEY'', //Add your master key here. Keep it secret! serverURL: ''http://localhost:'' + port + ''/parse'' // Don''t forget to change to https if needed }); app.use(''/parse'', api); app.get(''/'', function(req, res) { res.status(200).send(''Express is running here.''); }); app.listen(port, function() { console.log(''parse-server-example running on port '' + port + ''.''); });

Respuesta:

/Applications/MAMP/htdocs/IBM_bluemix/Development/my_node_app/node_modules/parse-server/lib/PromiseRouter.js:48 throw _iteratorError; ^ ReferenceError: Symbol is not defined at PromiseRouter.merge (/Applications/MAMP/htdocs/IBM_bluemix/Development/my_node_app/node_modules/parse-server/lib/PromiseRouter.js:33:40) at new ParseServer (/Applications/MAMP/htdocs/IBM_bluemix/Development/my_node_app/node_modules/parse-server/lib/index.js:137:10) at Object.<anonymous> (/Applications/MAMP/htdocs/IBM_bluemix/Development/my_node_app/app.js:10:11) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Function.Module.runMain (module.js:497:10) at startup (node.js:119:16) at node.js:906:3

Esta es la función en PromiseRouter.js que está arrojando un error

PromiseRouter.prototype.merge = function (router) { var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = router.routes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var route = _step.value; this.routes.push(route); } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } };

Esto es todo lo que tengo


La razón por la cual Symbol no se encuentra es porque es una característica de ES6 que no es compatible con su compilación actual de Node.js. Compruebe para asegurarse de que su tiempo de ejecución de Node.js sea al menos v4 ( consulte la compatibilidad aquí ).

La manera fácil de garantizar que su compilación de Node.js en Bluemix se ejecute al menos v4.0 es definir su variable de engine en el archivo package.json su aplicación como tal:

{ "engines" : { "node" : ">=4.0" } }

Después de actualizar su archivo package.json , vuelva a enviar su aplicación a Bluemix y la compilará con su versión definida de Node.js