nodejs学习笔记

  1. 定制一个包并且引用此包.

    目录结构:

    图片.png


    假定此包的作用是用来处理字符串转整型,整型车字符串的工具包.

    那么,需要先写2个js文件,这2个文件就是做类型转换工作的模块,并且将其放到utils/libs目录下.

    str2int.js

    图片.png

    int2str.js

    图片.png

    好了,功能写完了.我们还需要写一个包的入口程序,那就是main.js,放在功能模块同目录下

    图片.png

    当然,这样还不行,因为我们还需要一个package.json来指定此包的入口程序,这是由程序员自己定义,更加灵活,当然如果你不想写package.json.也可以将前面的包入口程序main.js改为index.js(小插曲,这里我采用的是自己定义).此文件需要放至到utils目录下,也就是与libs是兄弟级关系.


    package.json

    图片.png


    至此,我们的包就定义好了,节下来我们来看看怎么使用它吧.

      test.js

     图片.png

  输出结果:

      图片.png

    

2.Express模板引用之xTemplate模板引擎使用.

  在当前项目目录下执行

  cnpm install xtpl xtemplate --save


 修改app.js

app.set('view engine','xtpl')
app.engine('html', require('xtpl').__express);
app.set('view engine', 'html');
这样,我们的views目录里就可以使用x.html的扩展名了.而且还可以支持模板之间的引用.


图片.png

base.html是基础模板,供其它继承.

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>{{title}}</title>
    <link rel="stylesheet" href="/stylesheets/bootstrap.css">
    {{{block('styles')}}}
</head>
<body>
<header>
    <div>
        <div>
            <h1>{{title}}</h1>
        </div>
    </div>
</header>
<section>
    <div>
        {{{block('body')}}}
    </div>
</section>
{{{block('scripts')}}}
</body>
</html>

index.html继承之base.html

{{extend('./layout/base')}}
{{#block('body')}}
<div class="body">
express xtpl解析引擎
</div>
{{/block}}

路由控制routes/index.js

var express = require('express');
var router = express.Router();
/* GET home page. */
router.get('/', function(req, res, next) {
  res.render('index', { title: 'Express by jacky' });
});
module.exports = router;

使用supervisor bin/www启动后

访问http://127.0.0.1:3000/

图片.png


3.Express模板引用之nunjucks模板引擎使用.

  因为我习惯使用django默认模板引擎jinja,就从网上找到nunjucks,它可以满足我的需求,故在这里记录下.

 在当前项目目录下执行

  cnpm install nunjucks  --save


 修改app.js

const nunjucks  = require('nunjucks');
app.set('view engine','njk');
nunjucks.configure('views',{autoescape:true,express:app});
app.set('view engine', 'html');

这样,我们的views目录里就可以使用x.html的扩展名了.而且还可以支持模板之间的引用.

图片.png

base.html是基础模板,供其它继承.

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0,user-scalable=no">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>{% block title %} 首页 {% endblock %} - nunjucks演示</title>
    <link rel="stylesheet" href="/stylesheets/bootstrap.css">
    {% block custom_css %} {% endblock %}
</head>
<body>
<header style="text-align:center;">
    <p>Header</p>
    <hr>
    <header>
        {% block main %}  {% endblock %}
        {% block footer %}
        <footer>
        <hr/>
        <div style="text-align:center;">
            Footer  - by opdevos
        </div>
    </footer>
        {% endblock %}
        {% block custom_js %} {% endblock %}
</body>
</html>

default.html继承了这个base.html

{% extends './base.html' %}
{% block title %} 首页 {% endblock %}
{% block main %}
<h1>姓名:{{ name }}</h1>
<p>使用的模板引擎是:{{ title }}</p>
{% endblock %}
{% block footer %}
页尾
{% endblock %}

路由route/index.js需要做些调整

var express = require('express');
var router = express.Router();
/* GET home page. */
router.get('/', function(req, res, next) {
  res.render('default', { title: 'nunjucks' ,name:'opdevos'});
});
module.exports = router;

使用supervisor bin/www启动后

访问http://127.0.0.1:3000/

图片.png

这样就舒服多了,俺也可以不用再花时间去学其它的引擎了,哈哈...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值