答案 0 :(得分:0)
如果您的Products架构如下所示:
var ProductSchema = new Schema({
created: {
type: Date,
default: Date.now
},
title: {
type: String,
default: '',
trim: true,
required: 'Title cannot be blank'
},
comments: [{
type: String,
default: '',
trim: true
}]
});
您已在app/routes/products.server.routes.js
文件中限制了产品路线,如下所示:
app.route('/products/:productId')
.get(products.read)
.put(users.requiresLogin, products.hasAuthorization, products.update)
.delete(users.requiresLogin, products.hasAuthorization, products.delete);
然后,未授权的用户无法添加评论,因为他们无法更新产品记录。
您可能想要创建单独的CommentsSchema
并使用Mongoose ObjectId
类型与产品建立一对多关系:
var CommentSchema = new Schema({
product: ObjectId,
content: {
type: String,
default: '',
trim: true,
required: 'Content cannot be blank'
},
})
这样可以保护产品的安全性并允许未经授权的用户发表评论,但需要您执行稍微复杂的查询才能在产品视图中显示您的评论。