Skip to content

Instantly share code, notes, and snippets.

@phlco
Created October 26, 2016 02:39
Show Gist options
  • Save phlco/3bbeda77eceb8fd2e016b7cf89d61d6f to your computer and use it in GitHub Desktop.
Save phlco/3bbeda77eceb8fd2e016b7cf89d61d6f to your computer and use it in GitHub Desktop.
async and promises
require('./db');
var Person = require('./person');
var Story = require('./story');
async function seed() {
await Person.remove({});
await Story.remove({});
let user = new Person({ name: 'Herman Melville' });
const story = await Story.create({ title: 'Moby Dick', _creator: user});
user.stories.push(story);
await user.save();
let person = await Person.findOne({}).populate('stories').exec();
return `${person.name} wrote ${person.stories[0].title}.`;
}
seed()
.then(console.log)
.catch(console.log)
.then(process.exit);
require('./db');
var Person = require('./person');
var Story = require('./story');
Person.remove({}, function(err){
if (err) {
console.log(err);
process.exit();
}
Story.remove({}, function(err){
if (err) {
console.log(err);
process.exit();
}
var user = new Person({ title: 'Herman Melville' });
user.save(function(err){
if (err) {
console.log(err);
process.exit();
}
var story = new Story({ title: 'Moby Dick' });
story._creator = user;
story.save(function(err){
if (err) {
console.log(err);
process.exit();
}
user.stories.push(story);
user.save(function(err){
if (err) {
console.log(err)
process.exit();
}
Person.findOne({}).populate('stories').exec(function(err, person){
if (err) {
console.log(err)
process.exit();
}
console.log(`${person.name} wrote ${person.stories[0].title}.`);
process.exit();
});
});
});
});
});
});
require('./db');
var Person = require('./person');
var Story = require('./story');
Promise.all([
Person.remove({}),
Story.remove({})
])
.then(() => {
var user = new Person({ name: 'Herman Melville' });
var story = new Story({ title: 'Moby Dick', _creator: user });
user.stories.push(story);
return Promise.all([
story.save(),
user.save()
]);
})
.then(() => {
return Person.findOne({}).populate('stories').exec()
})
.then((person) => {
console.log(`${person.name} wrote ${person.stories[0].title}.`);
})
.catch(console.log)
.then(process.exit);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment