diff options
author | 2017-08-07 11:39:39 +0800 | |
---|---|---|
committer | 2017-08-07 11:39:39 +0800 | |
commit | 21d72c4a80fe2937d0c4ddd20624b27adbcd989b (patch) | |
tree | e5013ee12f74f8452e01cbff16e7b0158bc456cb /common/src/main/webapp/usageguide/appserver/node_modules/mongoose/examples/promises/promise.js | |
parent | f533e73e2ae32e010b16abdcf7985abaf31ab843 (diff) |
Upload the ESR GUI seed code
Issue-ID: AAI-68
Change-Id: Ia50ce0570c2fabecd77199d4e8454f56fe587c4e
Signed-off-by: lizi00164331 <li.zi30@zte.com.cn>
Diffstat (limited to 'common/src/main/webapp/usageguide/appserver/node_modules/mongoose/examples/promises/promise.js')
-rw-r--r-- | common/src/main/webapp/usageguide/appserver/node_modules/mongoose/examples/promises/promise.js | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/common/src/main/webapp/usageguide/appserver/node_modules/mongoose/examples/promises/promise.js b/common/src/main/webapp/usageguide/appserver/node_modules/mongoose/examples/promises/promise.js new file mode 100644 index 0000000..3f17206 --- /dev/null +++ b/common/src/main/webapp/usageguide/appserver/node_modules/mongoose/examples/promises/promise.js @@ -0,0 +1,94 @@ +// import async to make control flow simplier +var async = require('async'); + +// import the rest of the normal stuff +var mongoose = require('../../lib'); + +require('./person.js')(); + +var Person = mongoose.model('Person'); + +// define some dummy data +var data = [ + { + name: 'bill', + age: 25, + birthday: new Date().setFullYear((new Date().getFullYear() - 25)) + }, + { + name: 'mary', + age: 30, + birthday: new Date().setFullYear((new Date().getFullYear() - 30)) + }, + { + name: 'bob', + age: 21, + birthday: new Date().setFullYear((new Date().getFullYear() - 21)) + }, + { + name: 'lilly', + age: 26, + birthday: new Date().setFullYear((new Date().getFullYear() - 26)) + }, + { + name: 'alucard', + age: 1000, + birthday: new Date().setFullYear((new Date().getFullYear() - 1000)) + } +]; + + +mongoose.connect('mongodb://localhost/persons', function(err) { + if (err) { + throw err; + } + + // create all of the dummy people + async.each(data, function(item, cb) { + Person.create(item, cb); + }, function(err) { + if (err) { + // handle error + } + + // create a promise (get one from the query builder) + var prom = Person.find({age: {$lt: 1000}}).exec(); + + // add a callback on the promise. This will be called on both error and + // complete + prom.addBack(function() { + console.log('completed'); + }); + + // add a callback that is only called on complete (success) events + prom.addCallback(function() { + console.log('Successful Completion!'); + }); + + // add a callback that is only called on err (rejected) events + prom.addErrback(function() { + console.log('Fail Boat'); + }); + + // you can chain things just like in the promise/A+ spec + // note: each then() is returning a new promise, so the above methods + // that we defined will all fire after the initial promise is fulfilled + prom.then(function(people) { + // just getting the stuff for the next query + var ids = people.map(function(p) { + return p._id; + }); + + // return the next promise + return Person.find({_id: {$nin: ids}}).exec(); + }).then(function(oldest) { + console.log('Oldest person is: %s', oldest); + }).then(cleanup); + }); +}); + +function cleanup() { + Person.remove(function() { + mongoose.disconnect(); + }); +} |