Skip to content

Instantly share code, notes, and snippets.

@Nishchit14
Last active June 17, 2018 10:17
Show Gist options
  • Save Nishchit14/2ac3109790f1ae5133c55be89466f47e to your computer and use it in GitHub Desktop.
Save Nishchit14/2ac3109790f1ae5133c55be89466f47e to your computer and use it in GitHub Desktop.
Express vs Koa vs Hapi - REST APIs
// Expressjs REST APIs
const express = require('express');
const app = express();
cosnt router = express.Router();
let getUsersHandler = (req, res, next)=> {
//fetch users from database via ORM
res.send('Get - list users');
}
let creatUserHandler = (req, res, next)=> {
// Store user data via ORM
console.log('post', req.body)
res.send('Post- User successfully created');
}
let getUserHandler = (req, res, next)=> {
// fetch user details via ORM
console.log('User id:', req.params.id)
res.send('Get- User id: ' + req.params.id);
}
let updateUserHandler = (req, res, next)=> {
// update user details via ORM
console.log('User id:', req.params.id)
res.send('Put- User id: ' + req.params.id);
}
let deleteUserHandler = (req, res, next)=> {
// delete user via ORM
console.log('User id:', req.params.id)
res.send('Delete User id: ' + req.params.id);
}
router.route('/users')
.get(getUsersHandler)
.post(creatUserHandler);
router.route('/users/:id')
.get(getUserHandler)
.put(updateUserHandler)
.delete(deleteUserHandler);
app.use('/api', router);
// index, landing page
app.get('/', (req, res)=> {
res.send('Hello world, this is landing page');
});
let server = app.listen(3000, ()=> {
console.log('Express is listening to http://localhost:3000');
});
//Hapi REST APIs
const Hapi = require('hapi');
const server = new Hapi.Server(3000);
server.route([
{
method: 'GET',
path: '/api/users',
handler: (request, reply)=> {
reply('Get all users');
}
},
{
method: 'GET',
path: '/api/users/{id}',
handler: (request, reply)=> {
reply('Get user id: ' + request.params.id);
}
},
{
method: 'POST',
path: '/api/users',
handler: (request, reply)=> {
reply('Post- create User');
}
},
{
method: 'PUT',
path: '/api/users/{id}',
handler: (request, reply)=> {
reply('Put user id: ' + request.params.id);
}
},
{
method: 'DELETE',
path: '/api/users/{id}',
handler: (request, reply)=> {
reply('Delete user id: ' + request.params.id);
}
},
{
method: 'GET',
path: '/',
handler: (request, reply)=> {
reply('Hello world, this is the landing page');
}
}
]);
server.start(()=> {
console.log('Hapi is listening to http://localhost:3000');
});
// Koa REST APIs
const koa = require('koa');
const Router = require('koa-router');
const app = new Koa();
const router = new Router();
router
.get('/api/users', async(ctx) => {
ctx.body = 'Get - List all users';
})
.get('/api/users/:id', async(ctx)=> {
ctx.body = 'Get - get user ' + ctx.params.id;
})
.post('/api/users', async(ctx)=> {
ctx.body = 'Post - create user';
})
.pust('/api/users/:id', async(ctx)=> {
ctx.body = 'Put - update user ' + ctx.params.id;
})
.delete('/api/users/:id', async(ctx)=> {
ctx.body = 'Delete - delete user ' + ctx.params.id;
})
// all other routes
app.use(async()=> {
this.body = 'Hello world, this is landing page';
});
let server = app.listen(3000, ()=> {
console.log('Koa is listening to http://localhost:3000');
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment