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模板 有大哥遇到同样问题了吗
标题: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 模板文件。
以下是一些可能的原因及解决方案:
-
检查 Express 版本: 确认你使用的 Express 版本是否支持
-t
参数来指定模板引擎。在较旧版本的 Express 中,-t
参数可能不被支持。 -
检查生成的
package.json
文件: 查看microblog2/package.json
文件中的engines
字段,确认是否正确指定了 Node.js 和 npm 的版本。 -
手动更改模板引擎: 如果 Express 没有正确使用 EJS 模板引擎,你可以手动修改应用来使用 EJS。以下是简单的步骤:
- 修改
app.js
或server.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
。
- 修改
-
重新安装依赖: 运行
npm install
来安装项目所需的依赖项,确保所有配置都正确无误。 -
使用更现代的工具: 考虑使用更现代的框架如
Express Generator
,它可以更好地兼容现代模板引擎。例如:npx express-generator --view=ejs microblog2 cd microblog2 npm install npm start
通过以上步骤,你应该能够解决模板引擎选择的问题。如果仍然有问题,请提供更多的错误信息或日志以便进一步排查。