0
mongo、node、およびredisサーバを設定しようとしていますが、古いデータをロードしているようなRedisキャッシュ以外はすべて正常に動作しています。node.js |古いデータをロードするRedisキャッシュ
純粋なMongoを使用すると適切なデータが返されます。私が再度submitをクリックすると、以前の投稿のデータがロードされるため、キャッシュとMongoは正常に更新されています。
これは...
updateUserById: (newUser, redis, id, callback) => {
User.findByIdAndUpdate(id, {
$set: {
"firstName": newUser.firstName,
"lastName": newUser.lastName,
"email": newUser.email
}
}, (err, doc) => {
if (err) { throw new Error(err); }
else if (!doc) { callback('No user with that ID to update cache.') }
else {
redis.set(id, JSON.stringify(doc), (err) => {
console.log('Caching updated user ' + id);
if (err) { callback(err); throw new Error(err); }
else {
const result = {
"success": "true",
"message": "User updated successfully"
};
callback(result);
}
})
}
});
}
モンゴやRedisのを使用してユーザーを更新するため、私が持っている現在のコードであり、これはユーザー情報を返すためのRedisとモンゴです...
userById: async (redis, id, callback) => {
redis.get(id, async (err, reply) => {
if (err) {
callback(null); throw new Error(err);
} else if (reply) {
callback(JSON.parse(reply));
} else {
await User.findById(id, (err, doc) => {
if (err || !doc) { callback(null); throw new Error(err); }
else {
redis.set(id, JSON.stringify(doc),() => {
callback(doc);
})
}
})
}
})
}
私はそれが古い情報が含まれているdoc
と関係があることを発見しました。updateUserById