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调用。从服务创建

干杯,这是唯一的方法。我试图将控制器功能保留在控制器中,但为控制器创建服务也是有意义的。干杯,这是唯一的方法。我试图将控制器功能保留在控制器中,但为控制器创建服务也是有意义的。