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());

 

posted @ 2015-12-30 15:38  红麦贴客  阅读(204)  评论(0编辑  收藏  举报