node 小结

  1. express
    node可以直接使用http module来实现web应用。
var http = require("http");

// 创建Server
var app = http.createServer(function(request, response) {
  response.writeHead(200, {
    "Content-Type": "text/plain"
  });
  response.end("Hello hyddd!\n");
});

// 启动Server
app.listen(1984, "localhost");

访问http://localhost:1984 即可

同时 web应用需要访问不同的url http也可以实现:

// 加载所需模块
var http = require("http");

// 创建Server
var app = http.createServer(function(request, response) {
  if(request.url == '/'){
    response.writeHead(200, { "Content-Type": "text/plain" });
    response.end("Home Page!\n");
  } else if(request.url == '/about'){
    response.writeHead(200, { "Content-Type": "text/plain" });
    response.end("About Page!\n");
  } else{
    response.writeHead(404, { "Content-Type": "text/plain" });
    response.end("404 Not Found!\n");
  }
});

// 启动Server
app.listen(1984, "localhost");

中间件: middleware

// 加载所需模块
var express = require("express");
var http = require("http");

// 创建server
var app = express();

// 增加一些middleware
app.use(function(request, response, next) {
  console.log("step1, url:" + request.url);
  next();
});
app.use(function(request, response, next) {
  console.log("step2");
  if(request.url == '/'){
    response.writeHead(200, { "Content-Type": "text/plain" });
    response.end("Main Page!\n");
  }
  next();
});
app.use(function(request, response, next) {  console.log("step2:");
  console.log("step3");
  if(request.url == '/about'){
      response.writeHead(200, { "Content-Type": "text/plain" });
      response.end("About Page!\n");
  }
});


// 启动server
http.createServer(app).listen(1984);

Express通过 app.use 注册middleware,middlewares相当于request的handlers,在处理request时,顺序执行每一个handler(function),handler业务完成后,通过调用next();,决定是否调用下一个handler。
路由: routing

var express = require("express");
var http = require("http");
var app = express();

app.all("*", function(request, response, next) {
  console.log("step1");
  next();
});

app.get("/", function(request, response) {
  response.end("Home Page!");
});

app.get("/about", function(request, response) {
  response.end("About Page!");
});

app.get("*", function(request, response) {
  response.end("404!");
});

http.createServer(app).listen(1984);

使用express实现路由。

同时 express支持模板的view处理

var express = require("express");
var app = express();

// 模板目录:./views
app.set("views", __dirname + "/views");

// 使用jade引擎
app.set("view engine", "jade");

// 寻址views/index,提交jade渲染,并返回结果
app.get("/", function(request, response) { response.render("index", { message: "I'm hyddd" }); });

使用jade引擎来渲染模板。

  1. node中重要概念: 流
    流的对接: require('fs').createReadStream('image.jpg').pipe(res)
  2. net(telnet)服务器返回的是连接对象 http返回的是request和response对象
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值