JavaScriptでは、変数名の大文字と小文字が区別されます。 Userがあります モデルとUser 同じ名前の結果。
コードは次の変更で機能します:
User.findById(id , function (err, user) {
/* ^ use small `u` */
if (err) return handleError(err)
/* rest of your code */
また、コードのさらに先で、userという名前の別の変数を宣言していることにも注意してください。 。これを別のものに変更する必要があります。