Model view controller Sails-从服务访问控制器功能(req、res)
我有一个控制器方法:Model view controller Sails-从服务访问控制器功能(req、res),model-view-controller,sails.js,Model View Controller,Sails.js,我有一个控制器方法:DbController.create来创建数据库条目。这是以下格式: create: function (req, res) { var params = req.body; Db.create({ ... 此控制器方法有一个路由: 'POST /createData': 'DbController.create' 我可以毫无问题地使用CURL访问这个URL(CURL-xpost--data'userId=“testuser1”'http://loca
DbController.create
来创建数据库条目。这是以下格式:
create: function (req, res) {
var params = req.body;
Db.create({
...
此控制器方法有一个路由:
'POST /createData': 'DbController.create'
我可以毫无问题地使用CURL访问这个URL(CURL-xpost--data'userId=“testuser1”'http://localhost:1337/createData
),从我的UI代码中,我可以使用sails-io.js和io.socket.post(…)
调用它
问题是我现在想从我的服务(DbService)中使用它。我不确定如何进行此操作,因为简单地使用DbController.create
需要传递req
和res
参数,但我所拥有的只是数据/params/body。
谢谢最好的方法是在一些
服务
方法中移动创建
逻辑,以便它可以在项目中的任何地方使用。完成此操作后,然后从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调用。最好的方法是将create
逻辑移动到某个服务
方法中,以便可以从项目中的任何位置使用它。完成此操作后,然后从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的API端点发出http调用。从服务创建。干杯,这是唯一的方法。我试图将控制器功能保留在控制器中,但为控制器创建服务也是有意义的。干杯,这是唯一的方法。我试图将控制器功能保留在控制器中,但为控制器创建服务也是有意义的。