2016-01-06 3 views
0

я пытался что-то похожее на примере, приведенном на readme.md файле:Mongorito:. Сохранить (...), то это не функция

var Mongorito = require('mongorito'); 
var Model = Mongorito.Model; 

Mongorito.connect('mongodb://localhost:27017/cr-test'); 

class User extends Model { 
    collection() { 
    return 'users'; 
    } 
} 

var user1 = new User({ 
    name: "James Gosling", 
    email: "[email protected]", 
    password: "changeme" 
}); 

user1.save().then(() => { 
    console.log('User Created'); 
}); 

когда я бегу node --harmony server.js я получаю эту ошибку:

user1.save().then(() => { 
      ^

TypeError: user1.save(...).then is not a function 
    at Object.<anonymous> (...\app\server.js:24:14) 
    at Module._compile (module.js:398:26) 
    at Object.Module._extensions..js (module.js:405:10) 
    at Module.load (module.js:344:32) 
    at Function.Module._load (module.js:301:12) 
    at Function.Module.runMain (module.js:430:10) 
    at startup (node.js:141:18) 
    at node.js:980:3 

Может кто-нибудь объяснить мне, как я могу это исправить?

+0

Какую версию узла вы? 'node -v' –

+0

version: node 5.3.0 – Aleff

ответ

1

риого на GitHub устарела, то project's website ныне заявляет:

MongoDB ODM for Node.js based on ES6 generators.

No callbacks or promises.

Он использует генераторы, которые могут найти пример на getting started страницы:

'use strict'; 

function* saveUser() { 
    var user1 = new User({ 
    name: "James Gosling", 
    email: "[email protected]", 
    password: "changeme" 
    }); 

    yield user1.save(); 
} 

Для того, чтобы генераторы работа, вы должны использовать 'use strict;' и синтаксис function*. У этого GitHub project есть дополнительные примеры.

Также, начиная с версии Node v4, вам больше не нужен флаг для генераторов --harmony (now a synonym of --es_staging).

+0

Привет, я тоже попробовал (перед тем как попробовать Github), и я получил ошибку, используя' yield'. Сокет: «Неожиданное строковое зарезервированное слово режима». – Aleff

+0

Добавить '' use strict '; 'в верхней части файла –

+0

Но у него уже есть' 'use strict';' .-. – Aleff

0

или вы можете сделать так же ... но здесь вы можете выполнить только один оператор

user1.save().then(savedUser => console.log(`saved user: ${savedUser}`));