问题描述
这条路线的目的是渲染profile.html
,让用户可以看到他之前所有的orders
:
router.get('/profile',orderController.getorders)
我能够成功从 Mongo 获取订单并通过 console.log 记录它们,但我不知道如何使用它在 profile.html
上呈现 html 元素以显示它们。
res.send(orders)
输出到屏幕并阻止 res.render
工作。
module.exports.getorders = asyncHandler(async(req,res) => {
const token = req.cookies.jwt
const decodedToken = jwt.verify(token,process.env.JWT_SECRET)
const user = decodedToken.id
const orders = await Order.find( {user: user} )
res.send(orders)
res.render('profile.html')
})
如何将这些 orders
发送到前台?
解决方法
我们缺少一些关于您使用的框架以及您如何编译 HTML 的信息,但通常情况下,您会跳过 res.send(orders)
并以 res.render('profile.html',{orders: orders});
结尾通常还有一秒钟要发送到 HTML 文件的项目参数,然后该 HTML 文件将与您的订单信息一起编译。其语法取决于您使用的 HTML 编译器。很多时候你会发现编译器需要用双括号引用输入数据,比如 {{orders}}
。
我建议您查看您的框架文档以了解渲染期望的参数,以及您是否需要在渲染前编译模板。希望这虽然通用,但能帮到您!
,您应该使用视图引擎将数据传递给前端。
我推荐使用 ejs