我有一个简单的表格,需要3个字符串输入.我使用ng-model将它们绑定到$scope.
我想要做的是为名为author的字符串设置默认值,以防万一它留空.
如果仅使用默认值构建模型,则当字段保留为空时,会将空字符串写入数据库,但是当我使用require时,也不会写入任何内容(db返回错误).
有人可以解释我在做什么错吗?
模式:
var wordsSchema = new Schema({
author: {
type: String,
default: 'unknown',
index: true
},
source: String,
quote: {
type: String,
unique: true,
required: true
}
});
表达API端点:
app.post('/API/addWords', function(req, res) {
//get user from request body
var words = req.body;
var newWords = new Words({
author: words.author,
source: words.source,
quote: words.quote
});
newWords.save(function(err) {
if (err) {
console.log(err);
} else {
console.log('words saved!');
}
});
});
如果您需要其他信息,请告诉我.
谢谢您的帮助.
解决方法:
仅当在新文档中不存在author字段时,才使用架构中的default
值.因此,您需要使用以下方法对收到的数据进行预处理,以获得所需的行为:
var words = {
source: req.body.source,
quote: req.body.quote
};
if (req.body.author) {
words.author = req.body.author;
}
var newWords = new Words(words);