我有一个Controller方法:DbController.create
来创建数据库条目。这是以下格式:
create: function (req, res) {
var params = req.body;
Db.create({
...
此Controller方法有一条路线:
'POST /createData': 'DbController.create'
我可以使用CURL到这个URL没有问题(curl -X POST --data 'userId="testuser1"' http://localhost:1337/createData
),从我的UI代码我可以使用sails-io.js和io.socket.post(....)
来调用它。
问题是我想立即从我的服务中使用它(DbService)。我不知道如何解决此问题,因为仅使用DbController.create
需要传递req
和res
参数,但我所拥有的只是数据/参数/身体。
感谢
答案 0 :(得分:2)
最好的方法是在某个create
方法中移动service
逻辑,以便可以在项目的任何位置使用它。完成此操作后,使用DbController.create
以及其他服务中的必要参数调用该方法。
样品:
// DBService:
createData: (params, callback) => {
Db.create(params)...
}
// DBController:
create: (req, res) => {
const params = req.body;
DBService.createData(params, (err, results) => {
if (err) {
return res.serverError(err);
}
return res.json(results);
});
}
// SomeOtherService:
someMethod: (params, callback) => {
DBService.createData(params, callback);
}
另一种方式(不必做出http请求)是从服务到服务的DbController.create
的API端点进行HTTP调用。