node入门四----捡漏

原创 2015年07月07日 09:46:58

前面已经开发出简单的登录,后面将会进入到进阶阶段,打算开发博客,商城等等若干系统

这篇是补充一些知识

1:关于html的后缀,大家知道,若干是ejs模块那么后缀天生的就是.ejs,那么是否可变呢,我们知道java中是可以的,在配置文件中配置一下视图的后缀就可以了,这样代码会自动识别,我想用啥后缀就用啥后缀,是不是很任性呢?当然我们的node也是可以滴

app.engine('.html', require('ejs').__express);
app.set('view engine', 'html');


其中第一句是让ejs能够识别后缀为’.html’的文件,app.engine 相当于 express2 中的 app.register 。

第二句是使在调用render函数时能自动为我们加上’.html’ 后缀。如果没有第二句,我们就得把res.render(‘users’)写成res.render(‘users.html’),否则会报错。

这样我们就可以让我们的html文件的后缀是.html哦


2:中间件

中间件是什么,学过java的人可能听过拦截器,中间件我感觉就跟这个雷同:间件(middleware)就是处理HTTP请求的函数,用来完成各种特定的任务,比如检查用户是否登录、分析数据、以及其他在需要最终将数据发送给用户之前完成的任务。 它最大的特点就是,一个中间件处理完,可以把相应数据再传递给下一个中间件。

一个不进行任何操作,只传递request对象的中间件,大致是这样的

function Middleware(request, response, next) { 
   next();
}

如果有参数

function Middleware(request, response, next) { 
   next('出错了!');
}


app.all()函数可以匹配所有的HTTP动词,也就是说它可以过滤所有路径的请求,如果使用all函数定义中间件,那么就相当于所有请求都必须先通过此该中间件。

举例,下面的例子中all函数就是给所有请求设置响应头

var express = require("express");
var app = express();
 
app.all("*", function(request, response, next) {
    response.writeHead(200, { "Content-Type": "text/html;charset=utf-8" });      //设置响应头属性值
    next();
});
 
app.get("/", function(request, response) {
    response.end("欢迎来到首页!");
});
 
app.get("/about", function(request, response) {
    response.end("欢迎来到about页面!");
});
 
app.get("*", function(request, response) {
    response.end("404 - 未找到!");
});
 
app.listen(80);


上篇文章中app.js中用了好多use(),也注释了这是一种调用中间件方法

格式:app.use([path], function(request, response, next){});

任何连续调用两个中间件

var express = require('express');
var app = express();
 
app.use(function(request, response, next){
    console.log("method:"+request.method+" ==== "+"url:"+request.url);
    next();
});
 
app.use(function(request, response){
    response.writeHead(200, { "Content-Type": "text/html;charset=utf-8" });
    response.end('示例:连续调用两个中间件');
});
 
app.listen(80);


当然中间件还有别的用法,比如根据不同的请求地址,返回不同的内容

var express = require("express");
var app = express();
 
app.use(function(request, response, next) {
   if(request.url == "/") {
      response.send("Welcome to the homepage!");
   }else {
      next();
   }
});
 
app.use(function(request, response, next) {
   if(request.url == "/about") {
     response.send("Welcome to the about page!");
   }else {
     next();
   }
});
 
app.use(function(request, response) {
  response.send("404 error!");
});
app.listen(80);

3:日志管理

nodejs日志有很多方法,还没研究透彻,后面打算写小项目的时候穿插进去。敬请期待。。。



不怕得罪人地推荐这9本黑客书籍

[利益声明] 1、这9本都和我有些关系或缘分,也是我至少过了一遍的,虽然并没都仔细推敲,但是这些书,我还是不得不点个赞。 2、其中一本是我和 xisigr 写的:-)我并不觉得在这不能推荐,因...
  • GarfieldEr007
  • GarfieldEr007
  • 2016年05月03日 18:42
  • 3408

windows下《七天学会NodeJS》学习笔记之一--NodeJS基础

什么是NodeJS。浏览器可以解析JS,NodeJS也可以解析JS,它就是一个JS的解析器。浏览器利用JS操作DOM,而NodeJS利用JS操作磁盘文件或搭建HTTP服务器。NodeJS的作者创造No...
  • fm2005
  • fm2005
  • 2014年11月21日 14:44
  • 7721

《Node入门》读书笔记——用Node.js开发一个小应用

如需转载请注明出处 http://blog.csdn.net/as645788 Android APP的开发告一段落,一个稳定的、实现了基本功能的APP已经交付用户使用了!我和老板交流了下,接下来准...
  • as645788
  • as645788
  • 2015年08月16日 10:54
  • 1256

明远智睿i.MX6开发板EK200捡漏之四:修改内核启动LOGO

明远智睿i.MX6开发板EK200捡漏之四:修改内核启动LOGO 转载请注明作者和出处:http://blog.csdn.net/u011475210 嵌入式平台:明远智睿i.MX6开发板EK200 ...
  • u011475210
  • u011475210
  • 2017年07月23日 10:58
  • 2825

英语四级单词捡漏

9月14日infer 可以用在论文中,infer from 推断;推论; 猜想,infer虽指经过思考后的推断,但不确定思考的过程及结果是否有充足理由;conclude指(经推理)相信某事物 lon...
  • chengyangyy
  • chengyangyy
  • 2015年09月15日 15:41
  • 447

“荣耀”的智慧:陈仓暗渡,捡漏

我想为华为竖起一只拇指。 荣耀独立是妙棋,荣耀近期的表现,更是智慧。不作意气之争,能屈能伸,审时度势,因势利导,可谓智慧。 荣耀3C定价798,比红米便宜1元,新年伊始就遭遇移动版红米降价100元...
  • u013285860
  • u013285860
  • 2014年01月10日 09:00
  • 1518

Node.js开发入门(四)——Express安装与使用

之前我们在安装完Node.js后直接写了个HelloWorld网站,这次呢,我们使用Node.js的Web框架Express来重写一下HelloWorld,看看有什么不同。同时我们还会重写之前的文件服...
  • CareChere
  • CareChere
  • 2016年04月23日 19:32
  • 386

Node.js-入门四--url处理

1.url处理 url模块的基本用法                                                             node.js为互联...
  • qq_30073735
  • qq_30073735
  • 2017年05月04日 15:02
  • 168

node入门(四) - mongodb/redis

环境工具 mongo Plugin -- idea中的mongo 插件 "mongoskin": "^2.1.0", "mongodb": "^2.2.24",
  • u010377383
  • u010377383
  • 2017年05月20日 19:23
  • 79

Node.js从入门到精通

  • 2016年08月26日 16:40
  • 7.26MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:node入门四----捡漏
举报原因:
原因补充:

(最多只允许输入30个字)