如何在Vue中使用ejs模板。

发布于 2022-09-02 19:36:38 字数 634 浏览 14 评论 0

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

信仰 2022-09-09 19:36:38

用了express+ejs 还要vue干什么,要么直接后端渲染,要么express 提供restful API提供数据 用VUE渲染UI

临走之时 2022-09-09 19:36:38

确实有@papersnake 说的问题

第一,你的app.vue里想用ejs做模版引擎,那你得知道,这里的数据需要在“编译”的时候注入,参考pre-processors

第二,路由部分你又突然冒到服务器端了,然后还真的注入了一个{user: user},这真心不管用啊。这基本就是刻舟求剑的套路了

赢得她心 2022-09-09 19:36:38

webpack打包vue文件时和express服务器端渲染ejs一点关系都没有。
正常情况你应该先webpack生成静态的资源,然后访问express时再根据数据和ejs模板进行渲染返回html给前端。所以这里在webpack时,user怎么能被识别呢?除非你webpack之后的结果是ejs模板

玩套路吗 2022-09-09 19:36:38

好久之前的问题了。

这里 ejs 是在后端用的,因此把 lang=ejs 去掉应该就可以了吧,然后你的项目打包后要命名为 index.ejs,放到 express 的 view 目录下才行。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文