是否可以在控制器操作之上指定路由和接受的动词,而不必在config / routes.js中指定它?
module.exports = {
// GET /users
getAllUsers: function (req, res) {
User.find().exec(function (err, obj) {
res.send(obj);
});
},
// GET /users/:id
getUserByID: function (req, res) {
User.find({id:req.params.id}).exec(function (err, obj) {
res.send(obj);
});
},
// POST /users
createUser: function (req, res) {
User.create(req.body).exec(function (err, obj) {
res.send(201, obj);
});
}
};
答案 0 :(得分:4)
不,Sails目前不支持此功能。但是,如果您只是尝试为模型创建RESTful路由,Sails会通过blueprints系统免费为您提供这些路由。因此,默认情况下,如果您有api/models/User.js
文件和api/controllers/UserController.js
文件,则会自动添加以下路由:
GET /user ==> UserController.find
GET /user/:id ==> UserController.findOne
POST /user ==> UserController.create
PUT /user/:id ==> UserController.update
DELETE /user/:id ==> UserController.destroy
这些操作有默认处理程序,或者您可以在控制器文件中覆盖它们。
对于associations to other models的模型,还会添加一些额外的路线。有关详细信息,请参阅full blueprint API参考。
请注意,您还可以直接在config/routes.js
文件中绑定路由处理程序,例如"get /foo": function(req, res) {...}
,但这种情况违背了使用MVC框架的目的。