nodejs 更改模板引擎

2017-10-28  本文已影响39人  耦耦

更改ejs 为html 并且让html里面可以写 ejs 代码

要在app.js 中修改

var ejs = require('ejs');  // 需要在头部引入
app.set('view engine', 'html');
app.engine('.html', require('ejs').__express);

更改文件中如下结果位置,jade格式全部更改为html后缀。

image.png

然后在命令行去安装ejs,完成后运行程序:

set DEBUG=myapp & npm start
image.png

最后打开浏览器,如果没问题,输入http://localhost:3000/就可以访问主页,有错误的话再检查一下,就这几步,很简单的。

更改 jade 为 html 并且让html里面可以写 jade 代码

这个更改方法同上!!

var jade = require('jade');     // 需要在头部引入
app.set('view engine','html');
app.engine('.html',require('jade').__express);

更改为html后,渲染方式也会改变

页面上直接通过如下方式在输出内容:

<%- demo %>

(node.js)Nodejs + React做后端渲染时,如何绑定事件

但是,问题是,在组件中绑定的onClick事件并没有生效:

解决方案1:

后端只会生成HTML String, 所有浏览相关的操作是无法进行的。 E.g. componentDidMount事件不会被触发。
在后端生成HTML String 并 Return 回浏览器端时, 要重新render一次, 但注意这次render要保证有同样的State(如果你用Flux的话, 就是Store里的data 要一样)。在这次浏览器端的render中,会发生事件绑定。
一般情况下, 只需要对‘GET’进行服务器端渲染, 'POST', 'PUT', 'DELETE'这些不太有必要, 完全在客户端处理就行了

解决方案2:

事件绑定和处理是浏览器行为 不可能在后端实现的. 所以必须在浏览器端重新render
react智能的识别服务端render的字符串, 在页面中挂载&渲染的时候,只去做事件绑定.
建议好好去看看文档, 好多问题可以避免.

之后陆续都要写一些文章进行记录,供自己日后进行查阅。

上一篇下一篇

猜你喜欢

热点阅读