node 小结

来源:互联网 发布:翼龙贷 网数据档案 编辑:程序博客网 时间:2024/04/28 07:12
  1. express
    node可以直接使用http module来实现web应用。
var http = require("http");// 创建Servervar app = http.createServer(function(request, response) {  response.writeHead(200, {    "Content-Type": "text/plain"  });  response.end("Hello hyddd!\n");});// 启动Serverapp.listen(1984, "localhost");

访问http://localhost:1984 即可

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

// 加载所需模块var http = require("http");// 创建Servervar 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");  }});// 启动Serverapp.listen(1984, "localhost");

中间件: middleware

// 加载所需模块var express = require("express");var http = require("http");// 创建servervar app = express();// 增加一些middlewareapp.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");  }});// 启动serverhttp.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();// 模板目录:./viewsapp.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
原创粉丝点击