【问题标题】:How to change template engine of node.js project?如何更改 node.js 项目的模板引擎?
【发布时间】:2014-05-23 07:50:24
【问题描述】:

我有this node.js 项目,它使用玉模板。但我需要使用简单的 html 页面。安全转化所需的指南。

我需要使用完整的 .html 页面,例如 index.html、login.html。没有任何模板引擎显示在 localhost:3000 和 localhost:3000/login.html 等路由上。应该可以使用全部功能。

【问题讨论】:

    标签: node.js express template-engine


    【解决方案1】:

    你可以在config/express.js改:

    app.set('view engine', 'jade')
    

    例如,如果您想使用Handlebars,则在packages.json 中删除"jade": "latest", 并添加"handlebars": "latest"。然后运行npm install 并编辑config/express.js

     app.set('view engine', 'handlebars')
    

    【讨论】:

    • 我们不能在没有任何模板引擎的情况下在路由上渲染完整的 html 页面吗?
    • @XIMRX 您可以在不使用模板引擎的情况下发送任何 html,但您将无法自定义它。
    【解决方案2】:

    默认表达服务器静态html文件。

    将您的 html 文件放在 /public 文件夹中:

        ...
        /public
           index.html
           login.html
           ...
    

    然后去 localhost:3000/ 或 localhost:3000/login.html 但这是静态文件,然后应用程序逻辑应该在前端。例如使用角度或主干。

    【讨论】:

    • 是目前为止最好的可能性,有什么方法可以使用节点来操作逻辑吗?
    • 什么逻辑?不同的逻辑使用不同的方法。如果在渲染页面上需要逻辑 - 使用模板引擎(玉)。如果仅将数据发布到服务器(也称为登录页面),则简单发布到您的路线然后逻辑。示例:服务器 API (node + express) + AngularJs App (front) 获取和发布数据和渲染模板或经典 - 服务器渲染模板 (jade) + 浏览器渲染视图并将数据发布到服务器或组合应用程序的不同部分。一般来说,模板引擎需要逻辑;)
    【解决方案3】:
    app.get('/any_location', function(req, res){
        res.sendFile('Location_to_htmlFile');
    })
    

    【讨论】:

    • 请务必描述您正在尝试做的事情^^
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-10
    相关资源
    最近更新 更多