私は午前中にこれを検索し、さまざまな修正を試みましたが、わかりません。findOneAndUpdateは関数ではありません
私はエラーになっ保つ「TypeError例外を:req.user.findOneAndUpdateは関数ではありません」私はこれを実行しようとすると:
req.user.findOneAndUpdate({_id: req.user._id}, { $addToSet: { flashcards : { $each: cards }}}, {upsert : true}, function(err, doc) {
if(err) return console.log(err);
res.send(doc);
});
私は明示的にユーザーモデルにreq.userを回してみました(例えばVAR NEWUSER =新しいユーザー(req.body)、クエリなどを簡素化しようとしたが、何も動いていないようにみえ
編集:モデル宣言で
const User = require('../models/user');
var NewUser = new User(req.user);
NewUser.findOneAndUpdate({_id: req.user._id}, { $addToSet: { flashcards : { $each: cards }}}, {upsert : true}, function(err, doc) {
if(err) { return console.log(err); }
else { return res.send(doc);}
});
Userモデルスキーマ
const mongoose = require('mongoose'),
Schema = mongoose.Schema,
FlashcardSchema = require('./flashcardSchema'),
bcrypt = require('bcrypt-nodejs');
var UserSchema = new Schema({
username: {
type: String,
required: false
},
email: {
type: String,
required: true,
unique: true
},
password: {
type: String
},
created_on: {
type: Date,
default: Date.now
},
points: Number,
flashcards: [FlashcardSchema],
courses: [{type: Schema.Types.ObjectId, ref: 'Course'}]
});
UserSchema.methods.generateHash = function(password) {
return bcrypt.hashSync(password, bcrypt.genSaltSync(8), null);
};
UserSchema.methods.validPassword = function(password) {
return bcrypt.compareSync(password, this.password);
};
module.exports = UserSchema;
、あなたはERR を確認した後に戻ってきている
const mongoose = require('mongoose'),
Schema = mongoose.Schema,
UserSchema = require('../schemas/userSchema');
module.exports = mongoose.model('User', UserSchema);
あなたは必ずそのreq.user.findOneAnd ...だけではなく、user.findOneAndですか...? – vicbyte
ええ、Passportを使ってJSONリクエストに埋め込まれています:) – Coreylh
モデル宣言を投稿してください。 – vicbyte