CNode

node.js新手,想用ejs,不用jade,但改了之后会报错

问答
AAimeeLinzhiyu发布于10 年前最后回复10 年前9 回复5619 浏览0 收藏

想用ejs,不用jade,有什么办法改变一下,本来想把app.js 里的app.set('view engine','jade'); 改成 app.set('view engine','html'); 然后 Views里的index.jade改成index.html,但是浏览器访问的时候会报错:500 Error: Cannot find module 'html' ,有没有大神帮忙解决啊

查看回复

回复 (9)

Z
zhangjh#1·10 年前

不是用ejs吗,模板引擎应该设为ejs啊

A
AimeeLinzhiyu#2·10 年前
引用 zhangjh不是用ejs吗,模板引擎应该设为ejs啊

@zhangjh 设为ejs后,div样式没有了啊,就是把里面原来的jade 改成 app.set('view engine','ejs');

Z
zengming00#3·10 年前

app.set(‘view engine’,‘html’); 最简单的理解:只是设置默认的模板文件扩展名而已 就是你在res.render('index')时,会默认加上index.html,但是并没有html引擎,所以会报错 这也就是说你可以同时使用多个模板引擎 res.render('index') res.render('index.ejs') res.render('index.jade')

D
DevinXian#4·10 年前
引用 AimeeLinzhiyu@zhangjh 设为ejs后,div样式没有了啊,就是把里面原来的jade 改成 app.set('view engine','ejs');

@AimeeLinzhiyu 样式没有,那就说明style文件没有引入,可能你需要ejs partial渲染一类的,把js和style提出来作为layout。当然layout不用,每个页面引入也可以,稍微代码多点,修改麻烦

H
huangyanxiong01#5·10 年前

1:两个模板语法不一样,模板也要改 2:app.set('view engine' 'ejs') 3:样式没有可能就是载入样式文件错误,在chrome网络面板看看就知道 4:ejs写多后想吐,建议使用hbs

A
AimeeLinzhiyu#6·10 年前
引用 huangyanxiong011:两个模板语法不一样,模板也要改 2:app.set('view engine' 'ejs') 3:样式没有可能就是载入样式文件错误,在chrome网络面板看看就知道 4:ejs写多后想吐,...

@huangyanxiong01 chrome网络面板? 怎么看? 还有就是连接mondodb的时候会报错 : cannot find module"connect-mongo" ,是怎么回事?

Y
y13568540740#7·10 年前

使用ejs渲染就应该用用.ejs的文件.不该再用html的,如果你html是用ejs书写,可以在设置完模版引擎app.set("view engine","ejs")后使用res.render("index")或res.render("index.ejs");

Y
y13568540740#8·10 年前

同新手我也在学这个,昨天刚写完一个.https://github.com/y13568540740/photo

S
showonne#9·10 年前

再加一句app.engine('.html', require('ejs').__express);https://cnodejs.org/topic/530318fa5366a72a2c070a5d应该属于同类问题。

参与回复
登录后即可参与回复。登录