我的快递路线如下:
app.post('/api/:type/*/*/*', apiRoute.api);
在我的路线文件中我有:
exports.api = function(req, res) {
var type = req.params.type;
var entity = req.params['0'];
var field = req.params['1'];
var params = req.params['2'];
switch (type)
{
case "get":
return {'entity' : entity, 'field' : field, 'params' : params}
break;
case "post":
break;
}
}
然而,当我去
http://localhost:3000/api/get/industry/id/5
我得不到GET / api / get / industry / id / 5
我做错了什么以及如何让它返回json?
谢谢!
答案 0 :(得分:0)
您正在为POST定义路由,并且您正在使用GET访问它。如果您只想从服务器返回一些数据,则应使用GET定义路径:
app.get('/api/:type/*/*/*', apiRoute.api);
否则,您应该从客户端发出POST请求以使用您定义的POST路由。
答案 1 :(得分:0)
您可以使用app.route()
作为路由器的快捷方式来定义路由上的多个请求。请参阅下面的示例使用express 4
var express = require('express');
var app = express();
var port = process.env.PORT || 8080;
// ROUTES
var router = express.Router();
// apply the routes to our application
app.use('/', router);
// api routes
app.route('/api/:type/*/*/*')
.get(function(req, res) {
var type = req.params.type;
var entity = req.params['0'];
var field = req.params['1'];
var params = req.params['2'];
res.json({'entity' : entity, 'field' : field, 'params' : params});
})
.post(function(req, res) {
res.send('code to process post request goes here!');
});
// START THE SERVER
app.listen(port);
console.log('Server running on port ' + port);
希望这能解决你的问题..