0
私は以下のスキーマを持っています。新しいuser
を登録しようとすると、mongodbは最後に登録されたユーザの名前を新しいものに置き換えます。 ObjectIdはそのエントリにとどまります。なぜそれがそれをやっているのか分かりません。エラーはありません。エクスプレスマングースモンゴブが正しく挿入されない
I console.log
ポストAPIのどこでも編集しても問題ありません。エントリはデータベースには表示されますが、後者はデータベースに置き換えられました。問題は私のスキーマ設計ですか?私はそれが私がすべてをスキマ定義で作っている方法だと私に伝えています。String
私はMEANと一緒にビルドしています。
var AnswerSchema = Schema({
response : { type: String, default:null},
question : { type: String, ref: 'Question'},
employee : { type: String, ref: 'User'}
})
var QuestionSchema = Schema({
title : String,
});
var UserSchema = Schema({
username : String,
});
module.exports = mongoose.model('Answer', AnswerSchema);
module.exports = mongoose.model('Question', QuestionSchema);
module.exports = mongoose.model('User', UserSchema);
API
var Question = require('../models/questions');
var User = require('../models/users');
var Answer = require('../models/answers');
var jwt = require('jsonwebtoken');
var secret = "markov";
var user = new User();
var question = new Question();
var answer = new Answer();
// Export routes to the main server.js file
module.exports = function(router) {
/* ====================
User Registration Route
==================== */
router.post('/users', function(req, res) {
user.username = req.body.username;
if (req.body.username == null) {
res.json({ success: false, message: 'Ensure username is provided' });
} else {
// If criteria is met, save user to database
user.save(function(err) {
console.log(user.username);
if (err) {
res.json({ success: false, message: 'Username already exists!' });
} else {
res.json({ success: true, message: 'user created!' }); // If all criteria met, save user
}
});
}
});
'user.username'は非常に容疑者を探します。インスタンスはどこに作成されていますか?これは確かに '.post()'の範囲にはありません。どこかで 'var user = new User()'と呼ばれ、そのインスタンスが固執しています。したがって、あなたが記述しているのと同じ情報がそこに残っています。実際にその電話をかける場所を含むコードを表示します。しかし実際には、このスコープ内で単に 'new User()'を呼ぶべきです。 –
私はコードを追加しました。私は 'var user = new User()'を一番上に呼び出します。 –
そうしないでください。 '.post()'内で 'new User()' "と同じモジュール内の他のリクエストメソッドを呼び出してください。これは「輸入」とは異なります。あなたは変数を宣言しており、スコープは重要です。だから、あなたはすべてのリクエストで「新しい」ものを求めています。そうすれば問題は起こりません。 –