私はいくつかのコードを見ていますが、ユーザースキーマは次のようなものです。次のユーザーモデルの姓と名字にアクセスする方法(mongooseに基づいて)
var UserSchema = new mongoose.Schema(
{
email: {
type: String,
lowercase: true,
unique: true,
required: true
},
password: {
type: String,
required: true
},
profile: {
firstName: {
type: String
},
lastName: {
type: String
}
}
}
);
は今、私の知る限り理解できるよう、トップレベルのプロパティは、電子メール、パスワード、およびプロファイル.... firstName
とlastName
だけprofile
内からアクセスできる必要があります。しかし、詳細は次のようなものでアクセスされています。
exports.register = function(req, res, next) {
// Check for registration errors
const email = req.body.email;
const password = req.body.password;
const firstName = req.body.firstName;
const lastName = req.body.lastName;
// Return error if no email provided
if (!email) {
return res.status(422).send({ error: 'You must enter an email address.'});
}
// Return error if no password provided
if (!password) {
return res.status(422).send({ error: 'You must enter a password.' });
}
// Return error if full name not provided
if (!firstName || !lastName) {
return res.status(422).send({ error: 'You must enter your full name.'});
}
...
私はfirstName
とlastName
がreq.body.firstName
の代わりreq.body.profile.firstName
に直接アクセスされている理由を理解していないようです。どちらの仮想属性も存在しないようです。どうしたの!?
この登録ルートはどのように呼び出されますか?私はここでモンゴースが関わっているのを見ない。これは、POSTリクエストを介してデータを取得するルートのように見えます。 – DanielKhan
FYI、 'passport'も使用されています。私はコードを投稿しませんでした。なぜなら、関連性があるとは思わないからです。とにかく、これも起こっている 'var authRoutes = express.Router(); authRoutes.post( '/ register'、AuthenticationController.register); '....ここで、' register'は上記のメソッドです。 – Grateful
それに関係なく、 'req'はあなたの着信要求です。 このPOSTデータがどこに保存されている部分はどこですか? – DanielKhan