控制器的覆盖动作中的Sails.JS套接字

时间:2018-08-09 19:50:16

标签: websocket sails.js

我已覆盖了从Sails.JS中的蓝图API生成的控制器中的操作。

我使用了create动作。现在,我无法再通过该操作获取Sails.JS套接字事件,但是其他操作也可以正常工作。

io.socket.on('posts', function gotHelloMessage(data) {
      console.log('Post!', data);
    });
io.socket.get('/posts', function gotResponse(body, response) {
    console.log('Posts: ', body);
}) 

实现方式是什么,以便create动作也可以使用我新实施的动作来生成事件?

create: function(req, res) {
    if (
      !_.has(req.body, "title") ||
      !_.has(req.body, "body") ||
      !_.has(req.body, "category")
    ) {
      return res.serverError("No field should be empty.");
    }
    var uploadPath = "../../assets/posts";
    return req
      .file("thumbnail")
      .upload({ dirname: uploadPath }, async function(err, uploadedFiles) {
        if (err) return res.serverError(err);
        let post;
        try {
          post = await Posts.create({
            title: req.body.title,
            body: req.body.body,
            category: req.body.category,
            thumbnail:
              uploadedFiles.length === 0
                ? ""
                : uploadedFiles[0].fd.split("/").reverse()[0]
          }).fetch();
          return res.json({ result: post });
        } catch (err) {
          return res.json({ error: err });
        }
      });
  }

0 个答案:

没有答案