【发布时间】:2018-04-26 02:29:48
【问题描述】:
我想在将数据提交到数据库后更改按钮值,我已经为按钮文本分配了一个变量并尝试从后端设置它的值 但它不起作用
这是我的代码
后台
//after click action
router.post('/accept/:id',isLoggedIn,function(req,res){
User.findByIdAndUpdate(req.user._id, {$set:
{'friendRequest.Status':'Accepted'}},function(err,founduser){
if (err) {
console.log(err);
} else {
res.render('friendrequest',{user:founduser});
}
})
})
数据库模型
这里我将按钮的默认值设置为“接受”,这应该更改为接受
var mongoose = require('mongoose');
var passportLocalMongoose = require('passport-local-mongoose');
var UserSchema = new mongoose.Schema({
username:String,
password :String,
friendRequest:[{ //Target database model
id:{
type : mongoose.Schema.Types.ObjectId,
ref : "User"
},
username: String,
Status:{type:String,default:"Accept" } //default value of button
}]
UserSchema.plugin(passportLocalMongoose);
module.exports = mongoose.model("User",UserSchema);
前端
<h3 id='username'><%= request.username %></h3>
</div>
<div class="four wide column">
<form action = "/accept/<%=user.id%>" method = "post">
<button id="add" class="ui medium blue button"><%=request.Status%>
</button>
</form>
或者,如果您可以建议任何其他方法可以解决这个问题
【问题讨论】:
-
您的friendRequest 是一个数组,而您将其更新为一个对象。 {'friendRequest[0].Status':'Accepted'} 更有意义
标签: javascript html node.js mongodb mongoose