从Sails模型中获取旧记录

时间:2016-11-08 13:57:34

标签: javascript node.js sails.js models record

我实际上是想与 Sails.js websockets 建立一个完整的聊天,但即时面临一些麻烦。

当新客户端连接到聊天时,我成功发送并收到新消息,但我会新客户获取旧消息(例如聊天中发送的最后20条消息)。

Message.js(Model)

module.exports = {

  attributes: {
    name    : { type: 'string' },
    message : { type: 'string' }
  }
};

MessageController.js(Controller)

module.exports = {
    new: function(req, res) {
        var data = {
            name: req.param('name'),
            message: req.param('message'),
        };      

        Message.create(data).exec(function created(err, message){
            Message.publishCreate({id: message.id, name: message.name, message: message.message});
        });

    },

    subscribe: function(req, res) {     
        Message.watch(req);
    }
};

我有一个关于在我的模型上使用“查找”功能的想法,但并不是真正的结论。

我希望我不会错过关于Sails可能性的大事!

需要你的帮助:)谢谢!

2 个答案:

答案 0 :(得分:1)

Message.find({sort: 'createdAt ASC'}).exec(function(err, results) {
  //results is an array of messages
});

http://sailsjs.org/documentation/concepts/models-and-orm/query-language

答案 1 :(得分:0)

我已将此代码添加到订阅功能,但我在客户端收到的任何内容都没有收到 on(' message')

/* Get the last 5 messages */
Message.find({sort: 'createdAt DESC'}).limit(5).exec(function(err, messages) {
    for (var i = 0; i < messages.length; i++) {
        sails.sockets.broadcast(req.socket, 'message', messages[i]);
    }
});