Я использую express.js с mongoose как ODM.Mongoose не обновляет записи db
Я знаю, что когда другие серверы делают обновление для mongoDB, мангуста не признает это. Таким образом, все еще отображается старое состояние базы данных.
Я думаю, это связано с тем, что mongoose использует обратный вызов для обновления после создания, обновления нового документа, но этот обратный вызов не запускается, когда другая служба взаимодействует с mongoDB.
Итак, как я могу manuelly сказать mongoose, чтобы ухаживать за собственными созданными документами?
маршрутов/user.js
var User = require('../models/user.js')
, requirements = { enabled: true, expired: false, locked: false };
exports.list = function(req, res){
User.find(requirements, function(err, users){
res.send(users);
});
};
app.js
app.get('/users', user.list);
Когда я теперь доступ/пользователи с завитком или с браузером я получаю массив всех пользователей в mongodb. Это прямо сейчас. Теперь я регистрирую нового пользователя в среде PHP. Когда я теперь запрашиваю/пользователей снова, я все равно получаю тот же массив, что и раньше, без пользователя, созданного поверх php!
Когда я теперь перезапустить службу узла и запрос/пользователь снова РНР создал пользователем есть ....
Ваши утверждения о API Mongoose, не всегда отражающие текущее состояние базы данных, неверны. Результаты предыдущих запросов не отражают каких-либо внешних изменений, внесенных в базу данных, поскольку запросы выполнялись, конечно, но любые новые запросы 'find', безусловно, были бы. В чем конкретно вас беспокоит? – JohnnyHK
Я обновил свой вопрос. –
Похоже, проблема заключается в кэшировании вида в express.js. Вы можете попробовать 'app.disable ('view cache');' посмотреть, так ли это. – Stennie