vue ssr如何在asyncData中获取数据库数据
- asyncData 运行在服务器中,不可以用ajax请求,本来就在服务器中运行,也不需要ajax。
- 在entry-server.js中也不能require mongo数据库,
- 那应该在哪来执行mongodb的查询命令,把数据给asyncData中?
- 难道在渲染页面前,把数据放到context中?
const baseRender = async function(ctx, next){
let context = {url: ctx.request.url};
let htmlStr = await new Promise((resolve, reject) => {
renderer.renderToString(context, (err, html) => {
if (err) {
reject(err)
}
resolve(html);
});
}).catch(e => {
console.error(e);
return e;
});
if (htmlStr.code && htmlStr.code === 404) {
await next();
} else {
ctx.body = htmlStr;
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在asyncData中做请求,不过不是用ajax,是使用node中的http,可以直接axios库,兼容浏览器和 node.js