Создал базовое приложение express.js и добавил модель (используя thinky и rethinkdb), пытающуюся передать изменения в файл нефрита и не смог понять, как передать результаты фида. Я понимаю, что changes() возвращает бесконечный курсор. Поэтому он всегда ждет новых данных. Как справиться с этим в выражении res. Любая идея, что мне здесь не хватает?Rethinkdb changesfeed в Express.js с использованием thinky
var express = require('express');
var router = express.Router();
var thinky = require('thinky')();
var type = thinky.type;
var r = thinky.r;
var User = thinky.createModel('User', {
name: type.string()
});
//end of thinky code to create the model
// GET home page.
router.get('/', function (req, res) {
var user = new User({name: req.query.author});
user.save().then(function(result) {
console.log(result);
});
//User.run().then(function (result) {
//res.render('index', { title: 'Express', result: result });
//});
User.changes().then(function (feed) {
feed.each(function (err, doc) { console.log(doc);}); //pass doc to the res
res.render('index', { title: 'Express', doc: doc}) //doc is undefined when I run the application. Why?
});
});
module.exports = router;
Hi Mohammad, я ценю время, чтобы ответить на мой вопрос, но это не сработало. doc все еще не определено. Я должен посмотреть на интеграцию socket.io, чтобы передать его на передний план. Я надеюсь, что следующая версия Express.js будет думать о обновлениях в реальном времени от db. Это важная функция, которую должны учитывать каждая новая структура. – Marco
@marco Если вы добавите console.log MYDOCS прямо перед res.render, вы получите выход? –
Да. Но это тот самый вопрос, который я имел раньше. – Marco