如何使用AJAX将数据从服务器发送到客户端?

时间:2013-01-01 03:02:34

标签: ajax node.js rest coffeescript

我想查询MongoDB并检索一些文档。然后将这些文档流回客户端以填充<table>而不刷新页面。我已经知道如何使用socket.io来做到这一点,但我想学习如何在没有套接字的情况下传输数据。我目前收到Failed to load resource: the server responded with a status of 404 (Not Found),因为我没有/loadRecent资源,但我不知道如何在不加载新页面的情况下执行GET。 (我可能会遗漏一些关于REST如何工作的基本知识。)请建议。

服务器代码:

#Get recent documents
            app.get '/loadRecent', (req, res) ->
                console.log 'Documents requested...'
                db.collection 'documents', (err, collection) ->
                    collection.find().sort(dateAdded:-1) (err, cursor) ->
                        if not err
                            res.setHeader 'content-type':'application/json'
                            cursor.each (err, item) ->
                                res.write item
                        else
                            console.log 'Error getting recent docs: ' + err

客户端代码(目前只有console.log,但计划是在数据流过后将数据附加到<table>。):

$.getJSON('/loadRecent', function(data, textStatus, jqXHR)
            {
                console.log('Data recieved from server: ' + data);
            });

1 个答案:

答案 0 :(得分:1)

尝试在每个游标中构建JSON,而不是每次都尝试写入。

构建JSON,然后在光标为NULL时使用res.send,这样你就知道它完成了构建它。