Nodejs模板引擎现在只能用jade,不能用ejs了吗?死活就是生成jade

Nodejs模板引擎现在只能用jade,不能用ejs了吗?死活就是生成jade

C:>express -t ejs microblog2

create : microblog2 create : microblog2/package.json create : microblog2/app.js create : microblog2/public create : microblog2/public/javascripts create : microblog2/public/images create : microblog2/public/stylesheets create : microblog2/public/stylesheets/style.css create : microblog2/routes create : microblog2/routes/index.js create : microblog2/routes/user.js create : microblog2/views create : microblog2/views/layout.jade create : microblog2/views/index.jade

install dependencies: $ cd microblog2 && npm install

run the app: $ node app

命令已经给定ejs了,但是views却仍旧产生jade模板 有大哥遇到同样问题了吗


16 回复

标题:Nodejs模板引擎现在只能用jade,不能用ejs了吗?死活就是生成jade

内容: 在使用Express框架创建一个新的项目时,你可能会遇到一些模板引擎相关的困惑。例如,你可能希望使用EJS作为你的模板引擎,但系统仍然生成Jade模板文件。这里将解释如何正确设置和使用EJS模板引擎。

首先,我们需要理解的是,Express默认的模板引擎可能是Jade,但你可以通过命令行参数指定其他模板引擎。在你的例子中,你尝试使用-t ejs选项来创建一个使用EJS模板引擎的新项目,但是生成的文件中仍然包含.jade扩展名。

解决方法

1. 修改项目配置

确保在创建项目后,正确地安装并配置了EJS模板引擎。以下是一个简单的步骤:

# 创建新的Express项目,并指定使用EJS模板引擎
express -e microblog2

# 进入项目目录并安装依赖
cd microblog2
npm install

# 启动应用
node app.js

注意:-e 参数表示使用EJS模板引擎。

2. 验证配置文件

打开app.js文件,确保你已正确配置了EJS模板引擎。通常,Express会自动配置模板引擎,但有时手动检查一下可以避免误解。

var express = require('express');
var app = express();

// 设置视图引擎为EJS
app.set('view engine', 'ejs');

// 其他中间件和路由配置...

示例代码

假设你有一个简单的路由,用于渲染一个页面:

// routes/index.js
var express = require('express');
var router = express.Router();

/* GET home page. */
router.get('/', function(req, res) {
  res.render('index', { title: 'Express with EJS' });
});

module.exports = router;

在这个例子中,res.render('index')会查找views/index.ejs文件。

结论

通过上述步骤,你应该能够成功地创建并使用EJS模板引擎。如果你发现任何问题,检查命令行参数是否正确传递,以及配置文件中的设置是否符合预期。


C:\>npm install ejs

C:\>npm install -g ejs

我确定已经安装过了也不行

express -e not -t

大哥 我刚才在看这个帖子 和我的问题一样 http://cnodejs.org/topic/50c1a0ed637ffa4155d05256 这里的大哥说是加载express-partials

您说的这个我也试了 好用

这是为啥呢 又改版了?

xpress -e ejs microblog2

大哥 我这个试完直接写express -e microblog就行 您那个是新版写法吗?

啊…大哥你是少敲个e吧…

express -e ejs microblog2

express -h 能查询到新版的写法

多谢大哥 原来这个也可以查:)

https://github.com/visionmedia/express/blob/master/bin/express 看下这个文件就知道了,还能学下命令行传参

多了个谢 多了个谢

consolidate这个模块,Template Engine Consolidation Library ,这个模块也是express作者开发的

个人推荐swig这个模版,它例子里用的也是swig

多谢大哥指导 我在这里翻别的贴也看到swig这个词原来也是个模板 又变腻害了 我嚼嗷

再在这里问下 我的Bootstrap如果写在普通的.html里可以正常显示 在.ejs里就是中文乱码了 有大哥遇到这种情况吗?

你为什么不看官方文档呢?先?

从你提供的内容来看,express -t ejs microblog2 命令应该会创建一个使用 EJS 模板引擎的应用。然而,你提到 views 目录中生成的仍然是 Jade 模板文件。

以下是一些可能的原因及解决方案:

  1. 检查 Express 版本: 确认你使用的 Express 版本是否支持 -t 参数来指定模板引擎。在较旧版本的 Express 中,-t 参数可能不被支持。

  2. 检查生成的 package.json 文件: 查看 microblog2/package.json 文件中的 engines 字段,确认是否正确指定了 Node.js 和 npm 的版本。

  3. 手动更改模板引擎: 如果 Express 没有正确使用 EJS 模板引擎,你可以手动修改应用来使用 EJS。以下是简单的步骤:

    • 修改 app.jsserver.js 文件,确保它使用 EJS 模板引擎。
    var express = require('express');
    var app = express();
    
    // 设置模板引擎为 EJS
    app.set('view engine', 'ejs');
    
    • 删除或重命名 .jade 文件,并创建相应的 .ejs 文件。例如,将 views/layout.jade 改为 views/layout.ejs,并将 views/index.jade 改为 views/index.ejs
  4. 重新安装依赖: 运行 npm install 来安装项目所需的依赖项,确保所有配置都正确无误。

  5. 使用更现代的工具: 考虑使用更现代的框架如 Express Generator,它可以更好地兼容现代模板引擎。例如:

    npx express-generator --view=ejs microblog2
    cd microblog2
    npm install
    npm start
    

通过以上步骤,你应该能够解决模板引擎选择的问题。如果仍然有问题,请提供更多的错误信息或日志以便进一步排查。

回到顶部