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());
  • 相关阅读:
    LeetCode 485. Max Consecutive Ones
    LeetCode 367. Valid Perfect Square
    LeetCode 375. Guess Number Higher or Lower II
    LeetCode 374. Guess Number Higher or Lower
    LeetCode Word Pattern II
    LeetCode Arranging Coins
    LeetCode 422. Valid Word Square
    Session 共享
    java NIO
    非阻塞IO
  • 原文地址:https://www.cnblogs.com/lenga/p/5089005.html
Copyright © 2011-2022 走看看