我已经关闭了快捷方式蓝图(/model/findAll 不会工作),现在我想使用 REST 搜索模型,但我没有找到任何东西,是否有任何文档或我是否必须编写自己的 View 那个?
谢谢
最佳答案
在Sails.js ,为开发启用了 CRUD 和 REST 蓝图路由,但对于生产,我建议您有自己的操作,可以在给定的 Controller 中查找/创建/更新/删除模型
Sails 自动将 Controller 中的操作映射到相应的路由,而无需您手动配置它们,要关闭此功能:在 config/controllers 中将 actions 标志设置为 false。 js文件
这最好用一个例子来解释,所以这是一个具有一些 RESTful 路由的基本模型
models/User.js
我们的模型有两个属性,不强制唯一性
module.exports = {
attributes: {
name: 'string',
email: 'string'
}
};
controllers/UserController.js
我们的 Controller 有两个操作,findAll 返回所有用户,findByName 返回给定名称的用户
module.exports = {
findAll: function (req, res) {
User.find().done(function (err, users) {
if (err) {
res.send(400);
} else {
res.send(users);
}
});
},
findByName: function(req, res) {
var name = req.param('name');
User.findByName(name).done(function (err, users) {
if (err) {
res.send(400);
} else {
res.send(users);
}
});
}
};
config/routes.js
我们的路由配置有两个只响应 GET 请求的路由,/user/all 将运行 findAll 操作和/user/name/:name 将运行 findByName在 URL 中将名称 作为参数给出的操作
module.exports.routes = {
'GET /user/all': 'UserController.findAll',
'GET /user/name/:name': 'UserController.findByName'
};
有关更多信息,请务必查看 documentation Sails.js 中的 Controller
关于node.js - 如何使用没有快捷方式蓝图的 REST 搜索 sails.js 模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19293657/