【发布时间】:2019-02-01 03:19:09
【问题描述】:
我有一个 node.js 应用程序,我在其中创建了一个用户个人资料页面。我让它可编辑,这样他们就可以根据需要更新他们的名字。
但是,当我单击表单上的“保存更改”按钮时,它会重定向到正确的页面,但会显示旧信息。只有在您刷新页面或离开页面时,更新的信息才会显示。
提交表单html:
<form action="./profile" method="POST">
<div class="form-group">
<label for="">Full Name</label>
<input type="text" class="form-control" value="<%= name %>"
name="name">
</div>
<div class="form-group" >
<label for="">email</label>
<input type="text" class="form-control" value="<%= email %>" readonly>
</div>
<div class="form-row">
<div class="form-group">
<button type="submit" class="btn btn-info"><a href="profileEditor">
</a> Save Changes</button>
</div>
<p> </p>
<div class="form-group">
<button class="btn btn-dismiss"><a href="./profile">Exit</a>
</button></a>
</div>
</div>
</form>
index.js 的一部分(在我的路由文件夹中)
const express = require('express');
const router = express.Router();
const { ensureAuthenticated } = require('../config/auth');
const mongoose = require('mongoose');
const User = require('../models/User');
router.post('/', ensureAuthenticated, (req, res) => {
updateRecord(req,res);
res.redirect('/profile');
});
function updateRecord(req, res) {
User.findOne({_id:req.user.id},(err,doc)=>{
//this will give you the document what you want to update.. then
doc.name = req.body.name;
doc.save(function(err,doc){
});
});
}
module.exports = router;
在我的 router.post 函数下,res.redirect 工作并将用户发送到“/profile”,但不显示更新的数据库信息。请帮忙!
【问题讨论】:
标签: javascript node.js mongodb express mongoose