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);
});