Skip to content

Instantly share code, notes, and snippets.

@hekike
Created January 11, 2015 13:25
Show Gist options
  • Save hekike/c013c77b3acbef1b428b to your computer and use it in GitHub Desktop.
Save hekike/c013c77b3acbef1b428b to your computer and use it in GitHub Desktop.
Highland server with mongoose
var http = require('http');
var _ = require('highland');
var mongoose = require('mongoose');
var httpServer = http.createServer();
var server = _('request', httpServer, ['req', 'res']);
mongoose.connect('mongodb://localhost/test');
var UserSchema = new mongoose.Schema({
name: String
});
var User = mongoose.model('User', UserSchema);
// User.create({ name: 'John' });
// User.create({ name: 'Samantha' });
// User.create({ name: 'Claudia' });
//
var findUser = function (limit) {
return User
.find()
.limit(limit)
.stream();
};
var welcomeUser = function (user) {
return 'Hello ' + user.name + '!';
};
/*
* Hello route
*/
server.fork().filter(function (route) {
return route.req.url === '/hello' && route.req.method === 'GET';
}).each(function (route) {
_(findUser(3))
.map(welcomeUser)
.toArray(function (users) {
route.res.writeHead(200, {
'Content-Type': 'application/json'
});
route.res.end(JSON.stringify({
users: users
}));
});
});
httpServer.listen(process.env.PORT || 3000);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment