如何在Vue中使用ejs模板。
1.使用的官方vue-cli里的webpack
2.SPA项目,用到vue-router
3.
app.vue
<template lang="ejs"> <%= user %> </template>
4.
router.js
var express = require('express');
var router = express.Router();
router.get('/', function(req, res, next) {
var user = res.cookies.user || {}
res.render('index', { user: user });
});
5.问题:
webpack打包的时候报错表示 user 未定义
我自己也感觉写的有问题但是没有找到有关示例
请教一下该如何在vue里正确使用express+ejs模板
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
用了express+ejs 还要vue干什么,要么直接后端渲染,要么express 提供restful API提供数据 用VUE渲染UI
确实有@papersnake 说的问题
第一,你的
app.vue
里想用ejs
做模版引擎,那你得知道,这里的数据需要在“编译”的时候注入,参考pre-processors第二,路由部分你又突然冒到服务器端了,然后还真的注入了一个
{user: user}
,这真心不管用啊。这基本就是刻舟求剑的套路了webpack打包vue文件时和express服务器端渲染ejs一点关系都没有。
正常情况你应该先webpack生成静态的资源,然后访问express时再根据数据和ejs模板进行渲染返回html给前端。所以这里在webpack时,user怎么能被识别呢?除非你webpack之后的结果是ejs模板
好久之前的问题了。
这里 ejs 是在后端用的,因此把 lang=ejs 去掉应该就可以了吧,然后你的项目打包后要命名为 index.ejs,放到 express 的 view 目录下才行。