我使用 express.js 和猫鼬作为 ODM。
我知道提到当其他服务对 mongoDB 进行更新时,猫鼬不承认这一点。所以仍然显示数据库的旧状态。
我认为这是因为 mongoose 在创建、更新新文档后使用回调进行更新,但是当另一个服务与 mongoDB 交互时,不会触发此回调。
那么我怎么能手动说猫鼬照顾不是自己创建的文件呢?
路线/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);
});
};
应用程序.js
app.get('/users', user.list);
当我现在使用 curl 或浏览器访问 /users 时,我得到了 mongodb 中所有用户的数组。直到现在都是这样。现在我在我的 PHP 环境中注册了一个新用户。当我现在再次请求 /users 时,我仍然得到与以前相同的数组,而没有通过 php 创建的用户!
当我现在重新启动节点服务并再次请求 /users 时,由 php 创建的用户就在那里......