zoukankan      html  css  js  c++  java
  • nodejs 学习笔记-基础

    本来就没有写博客的习惯,这几天在学习nodejs,对于一些基本的东西记录了下来,以备忘记是查阅。

    1.不要使用 setTimeout(fn,0)代替 process.nextTick(callback), 前者比后者效率要低得多

    2. util.inherits 实现继承:

      var util = require('util');
    
    function Base() { };
    
    function Sub() { };
    
    util.inherits(Sub, Base);
    View Code

    3.无参数的 npm install 的功能就是 检查当前目录下的 package.json,并自动安装所有指定的依赖

    4.Express框架中如何引用ejs模板引擎 :

     

     1).express -e  microblog;
    View Code
    2).cd microblog && npm install.
    
    3).npm install express-partials
    View Code

     

    5.启动:

     

    npm start
    View Code

    6.ejs 里,默认的闭合标记是 <%  .. %>,我们也可以定义自己的标签:

      app.set("view options",{                                                                                 
    
              "open":"{{",                                                                                 
    
              "close":"}}"
    
    });
    View Code

    7.如果不想每个请求都单独设置一次。可以使用全局设置:

    app.set("view options",{                                                                                         
    
              "layout":false
    
    });
    View Code

    8.如果不愿意使用默认的layout.ejs,可自行指定:res.render("index",{"title":"test","layout":"main"});

    9.如果不愿意使用layout,则可以设置layout为false:res.render("index",{"layout":false});

    10.不使用layout:

      app.set("view options",{                                                                                         
    
               "layout":false
    
    });

    11.一般我们想要在 ejs 模板中使用外部函数用于特殊的处理,比如:<%= ellipsis(title, 30) %>,通常的做法有

       1).使用 app.locals 来定义

    //定义
    
    app.locals.ellipsis = function(str, len) { return str; }
    
     
    
    //使用
    
    <%= ellipsis(title, 20) %>

       2). 使用 ejs.filters 来定义

    //定义
    
    var ejs = require('ejs');
    
    ejs.filters.ellipsis = function(str, len) { return str; }
    
     
    
    // 使用
    
    <%=: title | ellipsis:len %> <%=: '这是一个很长的字符串'| ellipsis:5 %>
    
    // 如果 filters 函数只有一个变量参数 <%=: param | ellipsis %>

    推荐使用 app.locals.xxx 来定义 helper function

    12. 更改ejs模板后缀.ejs为.html

    //注册ejs模板为html页。简单的讲,就是原来以.ejs为后缀的模板页,现在的后缀名可以是.html了
    
    app.engine('.html', require('ejs').__express);
    
     
    
    //设置视图模板的默认后缀名为.html,避免了每次res.Render("xx.html")的尴尬
    
    app.set('view engine', 'html');
    View Code

    13. express的版本3.X的是不默认支持layout.ejs,要使之支持:

    1).安装一个插

    npm install express-partials

    2). app.js代码里面添加这俩行代码即可运行正常

    partials=require('express-partials');
    app.use(partials());
  • 相关阅读:
    Ubuntu Server 18.04上安装fail2ban
    Spring Security实现用户名密码登录
    Spring Boot集成H2数据库
    2019年过去了,我很怀念它
    基于Spring Boot的统一异常处理设计
    Git推送到多个远程仓库
    广州商学院16级软工一班&二班-助教总结
    记一次返工之后记
    广州商学院16级软工一班&二班-第四次作业成绩
    广州商学院16级软工一班&二班-第三次作业成绩
  • 原文地址:https://www.cnblogs.com/lenga/p/5089005.html
Copyright © 2011-2022 走看看