【发布时间】:2016-08-12 00:44:34
【问题描述】:
目前,我正在使用 ng-model 将数据插入到我的 MongoDB 中。有没有办法使用 ng-model 将数据插入到 MongoDB 中的数组中? answers 是一个数组,应该包含用户输入的 4 个字符串。我尝试将 [0]、[1]、[2]、[3] 添加到 quiz.quizData.answers,但它没有正确输入数据作为数组。相反,它是这样输入的:
"answers" : [
{
"0" : "My First Answer",
"1" : "My Second Answer"
}
],
而不是应该如何:
"answers" : [
"My First Answer",
"My Second Answer"
],
我的 HTML 输入表单:
<input type="text" name="answers" ng-model="quiz.quizData.answers" placeholder="enter answers here" required>
<input type="text" name="answers2" ng-model="quiz.quizData.answers" placeholder="enter other answers here" required>
我的终点
// POST request for users to post a new quiz entry
apiRouter.route('/quiz')
.post(function(req, res) {
// Create quiz object and assign to 'quiz'
var quiz = new Quiz();
// Contains the quiz question
quiz.question = req.body.question;
// Contains an array with four quiz answers
quiz.answers = req.body.answers;
// Contains one string that matches the correct answer from the array above
quiz.correctAnswer = req.body.correctAnswer;
// Identifies user creating the quiz
quiz.postedBy = req.body.postedBy;
// Identifies the category of the quiz
quiz.category = req.body.category;
// then save new quiz to database
quiz.save(function(err) {
// If an error occurs, display error message in JSON format
if (err) {
return res.json({ success: false, message: 'something went way wrong....' + err });
} else {
// If no error occurs and it saves, display success
res.json({ message: 'Quiz Created!' });
}
});
});
我的 MongoDB 架构:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
// post schema
var QuizSchema = new Schema({
question: { type: String, lowercase: true, required: true },
answers: { type: Array, required: true },
correctAnswer: { type: String, required: true },
category: { type: String, lowercase: true, required: true },
postedBy: { type: String, required: true }
});
module.exports = mongoose.model('Quiz', QuizSchema);
【问题讨论】:
标签: javascript angularjs arrays mongodb