node基本使用

141 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第4天,点击查看活动详情

node的基本创建

node的创建

node作为运行时,而不是一种框架,也不是语言
使用express作为中间件
const EXPRESS=require("express")
const app=EXPRESS()
app.listen("8080")//监听8080端口


app.get('/', function (request, response) {  
   response.send('Hello World!');
});

1.get请求

根据请求路径处理客服端发出的GET请求

格式为app.get(path,callback(request,reponse))

2.all函数的基本用法

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

格式为app.all(path,function(request, response));

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

上面代码参数中的“”表示对所有路径有效,这个方法在给特定前缀路径或者任意路径上处理时会特别有用,不管我们请求任何路径都会事先经过all函数。*

3.use基本用法1

use是express调用中间件的方法,它返回一个函数。

格式:app.use([path], function(request, response, next){}); 可选参数path默认为"/"。

1.使用中间件
app.use(express.static(path.join(__dirname, '/')));

如上呢,我们就使用use函数调用express中间件设定了静态文件目录的访问路径(这里假设为根路径)。

2.如何连续调用两个中间件呢,如下示例:
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);

回调函数的next参数,表示接受其他中间件的调用,函数体中的next(),表示将请求数据传递给下一个中间件。

上面代码先调用第一个中间件,在控制台输出一行信息,然后通过next(),调用第二个中间件,输出HTTP回应。由于第二个中间件没有调用next方法,所以req对象就不再向后传递了

4.use基本用法2

use方法不仅可以调用中间件,还可以根据请求的网址,返回不同的网页内容,如下示例:

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

上面代码通过request.url属性,判断请求的网址,从而返回不同的内容。