>  기사  >  웹 프론트엔드  >  swig 렌더링 템플릿과 결합된 노드

swig 렌더링 템플릿과 결합된 노드

不言
不言원래의
2018-04-10 17:00:031022검색

이 글에서 공유한 내용은 swig 렌더링 템플릿과 결합된 노드에 관한 것입니다. 이는 특정 참조 가치가 있으므로 필요한 친구가 참조할 수 있습니다.

여기에서는 nodejs에서 swig 템플릿을 적용하는 방법에 대한 몇 가지 기본 사용법을 요약합니다.
물론, Express 프레임워크를 사용하여 노드 백엔드에 서비스를 구축하세요

var express = require('express');
var server = express();

server.listen(8080,'localhost',(req,res)=>{
     console.log('服务器启动...');
})

시작이 성공한 후 swig 템플릿의 관련 구성 설정을 시작하세요. 구체적인 코드는 다음과 같습니다.
npm install swig -s
설치가 성공한 후 swig 구성, 코드를 다음과 같이 추가합니다.

//配置摸板引擎
var swig = require('swig');
//参数1,摸板引擎的名称,固定字段
//参数2,摸板引擎的方法
server.engine('html',swig.renderFile);
//摸板引擎存放目录的关键字,固定字段
//实际存在的目录,html文件就在html文件夹下面
server.set('views',__dirname+'/html');
//注册摸板引擎,固定字段
server.set('view engine','html');
//关闭swig缓存,缓存的目的也是提高node服务器的响应速度
swig.setDefaults({cache:false});

렌더링해야 할 데이터를 구성합니다.

server.get('/',(req,res)=>{
    //render方法只有在使用摸板引擎之后才会生效,其中 参数1是需要渲染的摸板名称,参数2就是需要渲染到页面的一些参数
    res.render('temp',{
        name:'张三',
        user:{
            name:'栗子',
            age:18
        },
        lists:['item1','item2','item3','item4','item5',
        'item6','item7','item8','item9','item10','item11','item12',
        'item13','item14','item15','item16','item17','item18','item19',
        'item20','item21','item22','item23','item24','item25','item26']
    });
})

html 파일의 구체적인 코드는 다음과 같습니다.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <p>摸板引擎</p>
    <!-- {{}} 插值表达式-->
    姓名:<p>{{name}}</p>
    {% if user.name == &#39;栗子&#39; && user.age == &#39;18&#39;%}
    姓名:<p>栗子</p>
    {% elseif user.name == &#39;张三&#39;%}
    <p>张三</p>
    {% endif %}
    <p>遍历数组</p>
    {% for items in lists%}
    <li>items</li>
    {% endfor %}
    
     <!-- 页面上面设置数据 -->
    {% set arr = [1,2,3,4,5]%}
    <p>{{arr.length}}</p>
    <!-- 如何引入页面-->
    {% include &#39;./common.html&#39; %}
</body>
</html>

특정 페이지
swig 렌더링 템플릿과 결합된 노드

위에서는 swig 템플릿 엔진을 사용하여 페이지 렌더링에 매개변수를 전달하는 방법을 설명했습니다. swig를 사용하여 html의 공개 부분을 추출하는 방법을 살펴보겠습니다.
html 페이지의 공개 부분(예: 헤더, 공용 js CSS 파일, 탐색 모음 등
공개 페이지 설정:

<header>
    <title>node</title>
    <!-- css占位符主要用来显示其他页面的个性化的css文件,例如home.css about.css -->
    {% block css%}
    {% endblock %}
    <link rel="stylesheet" href="/static/css/layout.css">
</header>
<!-- 所以页面公共的导航栏 -->
<nav>
    <li><a href="">首页</a></li>
    <li><a href="">关于我们</a></li>
    <li><a href="">商品列表</a></li>
    <li><a href="">登录</a></li>
    <li><a href="">注册</a></li>
</nav>
 <!-- content占位符主要用来显示其他页面的个性化的内容显示,不同的页面有不同的显示方式 -->
{% block content%}
{% endblock %}
 <!-- js占位符主要用来显示其他页面的个性化的js文件,例如home.js about.js -->
{% block js%}
{% endblock %}
<script src="/static/js/layout.js"></script>

home.html

d4cca6311f99f023c034557d9c699285
{% extends './layout.html'%}
{% block css %}
93df20d6087b99c1f2fce1dfd065778e
{% endblock %}
{% block content %}
  25edfb22a4f469ecb59f1190150159c66170e8999ab19ec641e0422470b16d5c15db79b134e9f6b82c0b36e0489ee08edbed06894275b65c1ab86501b08a632eb
  25edfb22a4f469ecb59f1190150159c66170e8999ab19ec641e0422470b16d5c25db79b134e9f6b82c0b36e0489ee08edbed06894275b65c1ab86501b08a632eb
  25edfb22a4f469ecb59f1190150159c66170e8999ab19ec641e0422470b16d5c35db79b134e9f6b82c0b36e0489ee08edbed06894275b65c1ab86501b08a632eb
  25edfb22a4f469ecb59f1190150159c66170e8999ab19ec641e0422470b16d5c45db79b134e9f6b82c0b36e0489ee08edbed06894275b65c1ab86501b08a632eb
  25edfb22a4f469ecb59f1190150159c66170e8999ab19ec641e0422470b16d5c55db79b134e9f6b82c0b36e0489ee08edbed06894275b65c1ab86501b08a632eb
  25edfb22a4f469ecb59f1190150159c66170e8999ab19ec641e0422470b16d5c65db79b134e9f6b82c0b36e0489ee08edbed06894275b65c1ab86501b08a632eb
{% endblock %}

{% block js %}
4598c8b9c010e04b865fd3e7954034832cacc6d41bbb37262a98f745aa00fbf0
{% endblock %}

노드 서버를 시작하고 홈 페이지를 렌더링하면

server.get(&#39;/&#39;,(req,res)=>{
    res.render(&#39;www/home&#39;,{});
})

swig 렌더링 템플릿과 결합된 노드

이 표시됩니다. 관련 권장 사항:

노드는 토큰 기반 인증을 구현합니다

예제에서는 node.js가 SQL Server 데이터베이스를 얻는 방법을 자세히 설명합니다


위 내용은 swig 렌더링 템플릿과 결합된 노드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.