Node.js + Express - How to get Mustache partials working?

前端 未结 3 1991
小鲜肉
小鲜肉 2021-01-18 15:35

I\'m trying to get Mustache working properly with Express, and as one can guess, I\'m having troubles.

The following line initializes Mustache nice and clean. Variab

相关标签:
3条回答
  • 2021-01-18 15:49

    Managed to get this working with the latest version of hogan-express.

    https://github.com/vol4ok/hogan-express

    All that is needed is to install hogan-express and use it as template engine on express. No hacking or tuning required.

    0 讨论(0)
  • 2021-01-18 15:53

    I'm not sure what's exactly in your ./public/js/libs/mustache.js ... I use the mustache module from npm + a variation of the templating object you linked to.

    In any case, the object you pass to app.register needs to call mustache.to_html(template, locals, partials) at some point.

    You need to pass the partials object as the third argument to mustache's to_html.

    0 讨论(0)
  • 2021-01-18 16:00

    Using express (at least version 3) and mustache-express, You can load partials as usual using double mustaches that begin with a greater than sign.

    First consider the following is appended within our app.js file:

    /** import the module */
    
    import mustache from 'mustache-express';
    
    /** view engine setup */
    
    app.engine('mst', mustache());
    app.set('view engine', 'mst');
    app.set('views', path.join(__dirname, 'mvc/views'));
    
    /** the route where we will display the partials */
    
    app.get('/', (req, res) => {
      let view = {
        title: 'Homepage',
        // ...
      };
    
      /** we are going to use a file called template.mst for rendering */
      res.render('template', view);
    });
    

    Any double mustaches that begin with a greater than sign (i.e. {{> file}}) will be considered a partial. The file within the partial will be rendered at runtime. Consider this file to be a partial we want to insert:

    mvc/views/partial.mst

    <h2>418 | I'm a teapot</h2>
    

    And here is our template:

    mvc/views/template.mst

    <h1>template.mst file</h1>
    
    <!-- output: <h2>418 | I'm a teapot</h2> -->
    {{> partial}}
    
    0 讨论(0)
提交回复
热议问题