美文网首页
nodejs 更改模板引擎

nodejs 更改模板引擎

作者: 耦耦 | 来源:发表于2017-10-28 21:21 被阅读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的字符串, 在页面中挂载&渲染的时候,只去做事件绑定.
    建议好好去看看文档, 好多问题可以避免.

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

    相关文章

      网友评论

          本文标题:nodejs 更改模板引擎

          本文链接:https://www.haomeiwen.com/subject/tmtepxtx.html