update sistema para operativo node instalar framework español documentacion actualizar node.js ecmascript-6 ecmascript-harmony

node.js - sistema - modo reservado inesperado modo estricto-rendimiento? Nodo v0.11, armonía, es6.



sistema operativo para node js (2)

Intentando utilizar un nuevo ODM node.js basado en ES6 para Mongo (Robe http://hiddentao.github.io/robe/ )

Error de "palabra reservada en modo estricto inesperado". Estoy dong algo mal aquí?

test0.js

"use strict"; // Random ES6 (works) { let a = ''I am declared inside an anonymous block''; } var Robe = require(''robe''); // :( var db1 = yield Robe.connect(''127.0.0.1'');

Ejecutarlo:

C:/TestWS>node --version v0.11.10 C:/TestWS>node --harmony test0.js C:/TestWS/test0.js:12 var db1 = yield Robe.connect(''127.0.0.1''); ^^^^^ SyntaxError: Unexpected strict mode reserved word at exports.runInThisContext (vm.js:69:16) at Module._compile (module.js:432:25) at Object.Module._extensions..js (module.js:467:10) at Module.load (module.js:349:32) at Function.Module._load (module.js:305:12) at Function.Module.runMain (module.js:490:10) at startup (node.js:123:16) at node.js:1031:3


Si desea utilizar generators para realizar operaciones asíncronas de manera síncrona, debe hacerlo de la siguiente manera:

co(function*() { "use strict"; { let a = ''I am declared inside an anonymous block''; } var Robe = require(''robe''); var db1 = yield Robe.connect(''127.0.0.1''); })();

Donde co realización puedes encontrar en:

y así.

En strict mode no se puede usar el yield fuera de los generadores. En non-strict mode fuera de los generadores, el yield se considerará como un identificador variable, por lo que en su caso se yield un error de todos modos.


También digno de mención ... nuevas versiones de co-return / use promises en lugar de thunks. Así que esto es lo que funcionó con las nuevas versiones de co.

var co = require(''co''); co(function*() { "use strict"; { let a = ''I am declared inside an anonymous block''; } var Robe = require(''robe''); var db1 = yield Robe.connect(''127.0.0.1/swot''); console.log(db1) return db1; }).then(function (value) { console.log(value); }, function (err) { console.error(err.stack); });