我有一个 API 端点,它提供来自 MongoDB 的一些 JSON。就像这样:
router.get('/api/links', function (req, res) {
// Find existing links
links.find({ feed: 1 }, function (err, links) {
res.json(links)
})
})
我希望这个端点触发一个 Kue 作业,当这个作业完成时,我想以某种方式将作业的结果(数据库中的新链接)推送到客户端 - 类似于 Twitter 流 API,它保留一个打开 HTTPGET
请求。
router.get('/api/links', function (req, res) {
// Find existing links
links.find({ feed: 1 }, function (err, links) {
res.json(links)
})
// Kue job to update the links database
jobs.create('update subscriptions', {
title: req.user.username,
feeds: feeds
}).save()
// When the job is done, the new links in the database (the output
// of the Kue job) should be pushed to the client
})
但是,我不确定如何获得 Kue 作业的结果,也不确定在作业完成后如何将新收到的数据推送到客户端。
如果没有办法获得 Kue 作业的结果,我可以只在数据库中查询新文档。但是,我仍然不确定如何向客户端发送另一个响应。希望有人能指出我正确的方向!