我正在研究Node.js并考虑使用它来构建API.据我所知,ExpressJS将是Web框架,而不是我想要解决的问题.
那么Web服务会是什么样子?它只是创建一个服务器,与mongo交谈并返回结果?此外,路由是什么样的? (我显然想’设计’路线).
解决方法
如果Express将是您的Web框架,请查看用于路由API的
express-resource(Github)中间件.您可以定义资源,并且只需很少的样板就可以为您提供REST样式的路由.
app.resource('horses',require('./routes/horses'),{ format: json })
鉴于上述情况,express-resource将把所有REST样式的路由连接到您提供的操作,默认返回JSON.在routes / horses.js中,您可以导出该资源的操作,包括:
exports.index = function index (req,res) { // GET http://yourdomain.com/horses res.send( MyHorseModel.getAll() ) } exports.show = function show (req,res) { // GET http://yourdomain.com/horses/seabiscuit res.send( MyHorseModel.get(req.params.horse) ) } exports.create = function create (req,res) { // PUT http://yourdomain.com/horses if (app.user.canWrite) { MyHorseModel.put(req.body,function (ok) { res.send(ok) }) } } // ... etc
您可以使用不同的表示进行回复:
exports.show = { json: function (req,res) { // GET http://yourdomain/horses/seabiscuit.json },xml: function (req,res) { // GET http://yourdomain/horses/seabiscuit.xml } }
像express-resource这样的中间件可以让Node和Express更加容易,看看github上的例子,看看它是否能满足您的需求.