美文网首页
jade初探

jade初探

作者: sunny2786 | 来源:发表于2017-02-15 22:08 被阅读0次

    建立项目文件夹

    $mkdir my-project
    $cd my-project
    $npm init -y
    

    安装express和jade

    $npm i --save jade express
    

    建入口文件app.js和views和public两个文件夹

    $touch app.js
    $mkdir views
    $mkdir public
    

    在package.json里加入,便于启动项目

      "scripts": {
        "start": "node ./app.js"
      },
    

    编辑app.js,app.js加入以下代码

    /*
    * Created by jmxb on 2017/02/15
    * 开心每一天
    */
    var express = require('express');
    var path = require('path');
    var http = require('http');
    var port = process.env.PORT || 3000;
    var app = express();
    app.set('views', path.resolve(__dirname, 'views'));
    app.use(express.static(path.join(__dirname, 'public')));//静态文件路径
    app.set('view engine', 'jade');
    app.get('/', function(req,res) {
        res.render('test',{'title': 'test'})
    });
    var server = http.createServer(app);
    server.listen(port);
    console.log('server listen at '+ port);
    

    jade教程参考

    源码------源码github地址

    test.jade

    test.jade
    extends ./layout
    block content
        h1 #{title}
        p hello jade
        p.
            foo bar baz
            rawr rawr
        p
            | foo bar baz
            | rawr rawr
        -console.log('hello')
        -var s = 'hello world'
        p #{s}
        p=s
        -var s1 = 'world'
        p hello #{s1}
        p='hello'+s1
        -var user = {name: 'jmxb'}
        -if(user.name == 'jmxb')
            h2 描述
            p my name is #{user.name}
        -else
            h2 描述
            p not my computer
        - var user1 = { name: 'Alan', isVip: false }
        unless user1.isVip
            p 亲爱的 #{user1.name} 您并不是 VIP
        -var arr1 = ['zdhxwjd', 'jdhydca', 'jmxb']
        ul
            -for(var i=0;i<arr1.length;i++){
                li hello #{arr1[i]}
            -}
        h2 测试each
        ul
            each val, index in arr1
                li hello #{val}
        h2 测试json
        ul
            each val, index in {1:'苹果',2:'梨子',3:'乔布斯'}
                li= index + ': ' + val
        - var friends = 1
        case friends
            when 0: p you have no friends
            when 1: p you have a friends
            default: p you have #{friends} friends
        mixin list
            ul
                li jmxb
                li jdhydca
                li zdhxwjd
        +list()
        +list()
        mixin article(title)
            .article
                .article-wrapper
                    h2= title
                    if block
                        block
                    else
                        p 文章没有内容
        +article('yan')
        +article('li')
        +article('hui')
            p  我是来搞笑的
        include test1
    

    layout.jade

    layout.jade
    doctype html
    html
      head
        title= title
        meta(name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0")
        link(rel='stylesheet', href='/stylesheet/style.css')
      body
        block content
    

    test1.jade

    test1.jade
    #footer
      p Copyright (c) foobar
    

    最终jade 模板会被解析成

    <!DOCTYPE html>
    <html>
        <head>
            <title>test</title>
            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
            <link rel="stylesheet" href="/stylesheet/style.css">
        </head>
        <body>
            <h1>test</h1>
            <p>hello jade</p>
            <p>foo bar baz
    rawr rawr</p>
            <p>foo bar baz
    rawr rawr</p>
            <p>hello world</p>
            <p>hello world</p>
            <p>hello world</p>
            <p>helloworld</p>
            <h2>描述</h2>
            <p>my name is jmxb</p>
            <p>亲爱的 Alan 您并不是 VIP</p>
            <ul>
                <li>hello zdhxwjd</li>
                <li>hello jdhydca</li>
                <li>hello jmxb</li>
            </ul>
            <h2>测试each</h2>
            <ul>
                <li>hello zdhxwjd</li>
                <li>hello jdhydca</li>
                <li>hello jmxb</li>
            </ul>
            <h2>测试json</h2>
            <ul>
                <li>1: 苹果</li>
                <li>2: 梨子</li>
                <li>3: 乔布斯</li>
            </ul>
            <p>you have a friends</p>
            <ul>
                <li>jmxb</li>
                <li>jdhydca</li>
                <li>zdhxwjd</li>
            </ul>
            <ul>
                <li>jmxb</li>
                <li>jdhydca</li>
                <li>zdhxwjd</li>
            </ul>
            <div class="article">
                <div class="article-wrapper">
                    <h2>yan</h2>
                    <p>文章没有内容</p>
                </div>
            </div>
            <div class="article">
                <div class="article-wrapper">
                    <h2>li</h2>
                    <p>文章没有内容</p>
                </div>
            </div>
            <div class="article">
                <div class="article-wrapper">
                    <h2>hui</h2>
                    <p>我是来搞笑的</p>
                </div>
            </div>
            <div id="footer">
                <p>Copyright (c) foobar</p>
            </div>
        </body>
    </html>
    

    相关文章

      网友评论

          本文标题:jade初探

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