node.js - 在 ejs 模板文件中使用 mongoose 获取数据
问题描述
我想在我的 ejs 文件中获取我的数据库中的所有用户。我有 3 个文件,一个模型用于数据,一个 ejs 文件和一个 js 文件用于我的路线。问题是我没有显示任何错误。我的浏览器上只呈现了一个空列表,就好像数据库中没有用户一样。有人能帮我吗?
这是我的路由 js 文件:
import express from 'express';
import User from "../models/user.js"
const routerUserList = express.Router();
routerUserList.get('/user-list', function(req, res, next) {
try {
const users = User.find({});
res.render('user-list', {
pageTitle: 'Liste des utilisateurs',
path: '/user-list',
users: users
})
} catch (error) {
res.status(500).json({message : "Une erreur est survenue"})
}
})
export default routerUserList
这是我的 ejs 文件:
<%- include('./includes/head.ejs') %>
</head>
<body>
<%- include('./includes/navigation.ejs') %>
<main>
<h1>Liste des utilisateurs</h1>
<% for(var i=0; i < users.length; i++) {%>
<li><%= users[i]._id %></li>
<li><%= users[i].name %></li>
<li><%= users[i].email %></li>
<% } %>
</main>
<%- include('./includes/end.ejs') %>
这是我的模型文件:
import mongoose from 'mongoose'
const userSchema = mongoose.Schema({
name: {type: String, required: true},
email: {type: String, required: true},
password: {type: String, required: true},
id: {type: String}
})
export default mongoose.model("User", userSchema)
解决方案
mongoose 模型总是返回 Promise,你应该解决这个 Promise 以获得一个实际的用户数组。更新后的代码将如下所示。
import express from 'express';
import User from "../models/user.js"
const routerUserList = express.Router();
routerUserList.get('/user-list', async function(req, res, next) {
try {
const users = await User.find({});
res.render('user-list', {
pageTitle: 'Liste des utilisateurs',
path: '/user-list',
users: users
})
} catch (error) {
res.status(500).json({message : "Une erreur est survenue"})
}
})
export default routerUserList
推荐阅读
- flutter - TabBar 和 AppBar 冲突
- python - 我使用 selenium webdriver 时的超时问题
- r - 使用 R Leaflet 创建交互式地图,在单击多边形时显示标记
- reactjs - index.html 在从 create-react-app 构建纱线后仅显示一些组件
- javascript - 如何以更简洁的方式编写嵌套订阅?
- java - javafx 如何根据辅助场景中的更改更改/刷新主场景及其控件?
- python - 通过flask和wtforms MultipleFileField保存多个文件
- html - 使用 jQuery toggle() 后如何响应地隐藏菜单?
- excel - Excel - 基于另一个单元格返回单元格的值
- php - 将 PHP 脚本输出写入 txt 文件