[聚合文章] node.js之express模块

JavaScript 1900-01-01 16 阅读

一、简介

Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具。使用 Express 可以快速地搭建一个完整功能的网站。

二、安装与运行

终端输入命令安装,这与其他模块一样

sudo npm install express

运行并初始化express

var express = require("express");var app = express();//初始化

三、核心功能

路由

引入一下模块,body-parser是post请求方式封装的模块,get请求不可用。

var express = require("express");var app = express();var querystring = require("querystring");// 只是post请求方式取参var bodyParser = require("body-parser");var app = express();// 引入bodyParserapp.use(bodyParser.urlencoded({    extended:true}));

获取请求参数* req.host:返回请求头里取的主机名(不含端口号)* req.path:返回请求的url的路径名* req.query:是一个可获取客户端get请求路径参数的对象属性,包含着被解析过的请求参数对象,默认为{}* req.params:获取路由的parameters

返回参数

  • res.send();返回数据,默认会转为字符串,编码为utf8* res.sendFile();返回文件* res.sendStatus();返回状态码
  1. get请求

app.get(path,cb);

  • path:为请求的路径
  • cb :第二个参数为处理函数的回调,有两个参数request和response,代表请求信息和响应信息
  1. 使用res.sendFile()方法加载post提交页面
  2. 使用res.send()方法传输数据,
    使用express模板比原生的node传输方便了很多,不需要去获取pathname,判断pathname的值...,只需要用app.get()就能实现数据交互的功能了。
app.get("/",function (req,res) {    // res.send("<h1>我是主页</h1>");    // 加载post提交页面    res.sendFile(__dirname+"/post.html");})app.get("/goods",function (req,res) {    res.send("我是商品页");})
  1. post请求
    使用app.post()来处理post请求;
    原生node获取数据的方法,用流的方式读取数据,读完后获得数据,而使用body-parser模板时,post传输的数据便在req.body中,直接取就可以了,简化了读文档流的步骤。body-parser的配置看上面的已经配置了。
app.post("/post",function (req,res) {// 原生node获取post参数的写法    // var str = "";    // req.on("data",function (chunk) {    //     str += chunk;    // })    // req.on("end",function () {    //     var data = querystring.parse(str);    //     console.log(data);    //     res.send(`<h1>姓名是:${data.username}年龄是:${data.age}</h1>`);    // })    // 通过body-parser获取到参数    console.log(req.body);    res.send(`<h1>姓名是:${req.body.username}年龄是:${req.body.age}</h1>`);});
  1. post或者get请求
    express模板封装了一个all方法,来处理不管是任何方式发送的请求,*为任意路径。
// get请求或者是post请求;app.all("/*",function (req,res) {    // console.log(req._parsedUrl.pathname);    var pathname = req._parsedUrl.pathname;    if(pathname=="/get"){        var data = req.query;        res.send(JSON.stringify(data));    }else if(pathname!="/favicon.ico"){        res.sendFile(__dirname+pathname);    }});

注:本文内容来自互联网,旨在为开发者提供分享、交流的平台。如有涉及文章版权等事宜,请你联系站长进行处理。