1、这是要渲染的前台页面:数据库里数据没有问题与用户输入的数据类型相吻合,但是把数据库数据渲染到前台页面字母字符串却变成了中文。下面是渲染页面代码:
//导入用户集合构造函数
const { User } = require('../../model/user');
module.exports = async (req, res) => {
//数据太多不好显示,要做页码的分页
//首先拿到用户传递过来的参数(页码数)
let page = req.query.page;
//其次查询数据库的总数据条数
let count = await User.countDocuments({});
//设置每页显示数据条数
let pagesize = 5;
//计算总共显示多少页
let total = Math.ceil(count / pagesize);
//计算每页开始时是从哪条数据开始
let start = (page - 1) * pagesize;
//用户进入到列表页面要把数据库的数据显示到列表上
//查询数据库数据参数是{}表示查询所有数据,users为数组
let users = await User.find({}).limit(pagesize).skip(start);
res.render('admin/user', {
users: users,
page: page,
total: total
});
};
这是要渲染的模板文件代码:
<!-- 内容列表 -->
<table class="table table-striped table-bordered table-hover custom-table">
<thead>
<tr>
<th>ID</th>
<th>用户名</th>
<th>邮箱</th>
<th>角色</th>
<th>状态</th>
<th>操作</th>
</tr>
</thead>
<tbody>
{{each users}}
<tr>
<!-- 在$value._id前面加上@符号是为了把ID不带引号原文输出 -->
<td>{{@$value._id}}</td>
<td>{{$value.username}}</td>
<td>{{$value.email}}</td>
<td>{{$value.role == 'admin'?'超级管理员':'普通用户'}}</td>
<td>{{$value.state == 0?'启用':'禁用'}}</td>
<td>
<a href="user-edit.html" class="glyphicon glyphicon-edit"></a>
<i class="glyphicon glyphicon-remove" data-toggle="modal" data-target=".confirm-modal"></i>
</td>
</tr>
{{/each}}
</tbody>
</table>
<!-- /内容列表 -->
这个问题困扰我很久,希望大佬们给提提意见。