Node.js ejs模板的客户端和服务器端呈现

Node.js ejs模板的客户端和服务器端呈现,node.js,ejs,server-side-rendering,client-side-templating,Node.js,Ejs,Server Side Rendering,Client Side Templating,我一直希望学习NodeJS能够在服务器端和客户端运行相同的代码。 我将NodeJS与Express和EJS一起使用。 所以我有一个.ejs页面,包含很多HTML、JS、CSS和一小部分模板。为了公正起见,就这样吧: _列表-->some.ejs <ul> <% for(i=0;i>the_list.length;i++) { %> <li>the_list[i]</li> <% } %> </ul>

我一直希望学习NodeJS能够在服务器端和客户端运行相同的代码。 我将NodeJS与Express和EJS一起使用。 所以我有一个.ejs页面,包含很多HTML、JS、CSS和一小部分模板。为了公正起见,就这样吧:

_列表-->some.ejs

<ul> 
<% for(i=0;i>the_list.length;i++) { %>
    <li>the_list[i]</li>
<% } %>
</ul>    
    列表长度;i++{%>
  • (一)
在服务器上渲染之后,我们有了一个完美的列表

所以。 现在我想在客户端重新发布它。我提出了一些ajax请求,现在我在列表中有了新的项目。正确的方法是什么?

根据ejs

var模板=新的EJS({
正文:`
  • (一)
` }); var html=template.render({the_list:data}); document.getElementById('list-wrapper')。innerHTML=html;
这应该是可行的,看起来您的问题是关系运算符“>”,因为它永远不会输出某些内容

<ul>
    <% for(var i=0; i<the_list.length; i++) { %>
        <li>
            <a>
                <%= the_list[i]%>
            </a>
        </li>
    <% } %>
</ul>
    
    让博客帖子=[
    {
    标题:“特权是真的!”,
    正文:“…”,
    作者:《亚伦·拉纳》,
    发布日期:新日期('2016-03-19'),
    创建日期:新日期('2016-03-19')
    },
    {
    标题:"继续发展",,
    正文:“…”,
    作者:《亚伦·拉纳》,
    发布日期:新日期('2016-03-18'),
    创建日期:新日期('2016-03-18')
    },
    {
    标题:“欢迎来到Perk!”,
    正文:“…”,
    作者:《亚伦·拉纳》,
    发布日期:新日期('2016-03-17'),
    创建日期:新日期('2016-03-17')
    }
    ];
    var html=ejs.render(`
    

    `,{posts:blogPosts}); //香草JS: document.getElementById('output')。innerHTML=html;

    从最新版本下载ejs.js或ejs.min.js

    我有一个类似的问题,但我想使用一个部分文件,而不是像上面那样放置我的HTML。你知道这是否可行吗?谢谢
    <ul>
        <% for(var i=0; i<the_list.length; i++) { %>
            <li>
                <a>
                    <%= the_list[i]%>
                </a>
            </li>
        <% } %>
    </ul>
    
    <div id="output"></div>
    <script src="/assets/js/ejs.js"></script>
    <script>
      let blogPosts = [
        {
            title: 'Perk is for real!',
            body: '...',
            author: 'Aaron Larner',
            publishedAt: new Date('2016-03-19'),
            createdAt: new Date('2016-03-19')
        },
        {
            title: 'Development continues...',
            body: '...',
            author: 'Aaron Larner',
            publishedAt: new Date('2016-03-18'),
            createdAt: new Date('2016-03-18')
        },
        {
            title: 'Welcome to Perk!',
            body: '...',
            author: 'Aaron Larner',
            publishedAt: new Date('2016-03-17'),
            createdAt: new Date('2016-03-17')
        }
    ];
          var html = ejs.render(`<% for(let i = 0; i < posts.length; i++) { %>
        <article>
            <h2><%= posts[i].title %></h1>
            <p><%= posts[i].body %></p>
        </article>
    <% } %>`, {posts: blogPosts});
      // Vanilla JS:
      document.getElementById('output').innerHTML = html;
    </script>