####punch-card punch-card is Express's routing wrapper. If use punch-card improve understanding of routing maps.
###Required
- Express 4
###DEMO
First, install punch-card.
npm install punch-card
Next, create express project.
express SapmleProject
Next, create card.pch file. For example create card.pch at directly under of SampleProject. (/dev/to/path/SampleProject/card.pch)
The time being, The contents of card.pch are below.
root index
/api
GET /movies Movies/get
POS /movies Movies/post
GET /movies/:id Movies/get
PUT /movies/:id Movies/put
DEL /movies/:id Movies/delete
Next, create /route folder. Please put response function in the this folder. The time being, create /dev/to/path/sampleproject/routes folder, it contain movies.js.
The content of movie.js are below.
var Movie = require('../models/movie');
module.exports.get = function (req, res) {
if (req.param('id') != undefined) {
var option = {
_id : req.param('id')
};
} else {
var option = {};
}
Movie.find(option, function(err, movies){
if(err)console.log(err);
res.json(movies);
});
};
module.exports.post = function (req, res) {
var movie = Movie(req.body);
movie.save(function (err) {
if (err){
return res.send(err);
}
res.send({ message: 'Movie Added' });
});
};
module.exports.put = function (req, res) {
Movie.findOne({ _id: req.param('id') }, function(err, movie) {
if (err) {
console.log(err);
return res.send(err);
}
for (prop in req.body) {
movie[prop] = req.body[prop];
}
movie.save(function(err) {
if (err) {
return res.send(err);
}
res.json({ message: 'Movie updated!' });
});
});
};
module.exports.delete = function (req, res) {
Movie.remove({
_id: req.param('id')
}, function(err, movie) {
if (err) {
return res.send(err);
}
res.json({ message: 'Successfully deleted' });
});
};
Next, configure app.js. Concretely add this one line into app.js.
...
require('punch-card')(app, './card.pch', './routes');
...
Finaly, start application.
npm start