You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pug模板用户名插值问题:MongoDB用户数据填充编辑表单

解决方案

看起来你已经把路由部分搞定了——通过User.findById获取用户数据,再把它作为currentUser传给editProfile模板,这一步完全没问题!接下来只需要在Pug模板里把这些数据绑定到表单输入框的value属性上就行,具体做法如下:

基础表单绑定示例

假设你的用户Schema包含username、email和bio字段,对应的Pug表单代码可以这么写:

form(method="POST" action="/users/"+currentUser._id+"/edit")
  //- 用户名输入框
  .form-group
    label(for="username") 用户名
    input(type="text" id="username" name="username" value=currentUser.username required)
  
  //- 邮箱输入框
  .form-group
    label(for="email") 邮箱
    input(type="email" id="email" name="email" value=currentUser.email required)
  
  //- 个人简介文本域(注意textarea的写法和input不同)
  .form-group
    label(for="bio") 个人简介
    textarea(id="bio" name="bio" rows="3")= currentUser.bio || ''
  
  button(type="submit" class="btn btn-primary") 保存修改

关键细节说明

  • 普通输入框:直接在input标签的value属性后写=currentUser.字段名,Pug会自动将用户的现有数据填充到输入框中。
  • 文本域(textarea):不能用value属性,需要把变量值直接放在标签内部,用=输出。加上|| ''是为了处理字段为空的情况,避免页面显示undefined。
  • 表单提交路径:通过currentUser._id拼接action路径,确保表单提交到对应用户的编辑接口。

如果你的用户Schema还有其他字段(比如年龄、地址等),只需要按照同样的逻辑,把currentUser.对应字段名绑定到相应的输入框value上即可。用户打开编辑页面时,输入框会自动加载现有数据,未修改的话提交时会保留原数值,完全符合你的需求。

内容的提问来源于stack exchange,提问作者J.G.Sable

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:33:18