博客
关于我
nodejs系列之express
阅读量:793 次
发布时间:2023-02-16

本文共 2050 字,大约阅读时间需要 6 分钟。

Express框架概述

Express框架特点

Express是基于Node.js的流行Web开发框架,适合快速搭建高效的Web应用。其核心优势在于简化了服务器端开发流程,通过提供一系列功能强大的中间件,帮助开发者高效完成HTTP服务开发。

环境搭建

通过Express的应用生成器工具express-generator,开发者可以快速创建项目骨架。以下是环境搭建的步骤:

$ npm install express-generator -g

Express运行原理

Express框架建立在Node.js内置的http模块之上。原始的http模块实现了服务器端的基本功能,而Express通过对其进行抽象和封装,使开发者能够更高效地构建应用。

http模块示例

以下是使用http模块创建服务器的原始代码:

var http = require("http");var app = http.createServer(function(request, response) {    response.writeHead(200, {"Content-Type": "text/plain"});    response.end("Hello world!");});app.listen(3000, "localhost");

Express改写示例

使用Express框架重写后的代码如下:

var express = require('express');var app = express();app.get('/', function (req, res) {    res.send('Hello world!');});app.listen(3000);

中间件概念

中间件是Express应用的核心组成部分,主要负责处理HTTP请求。每个中间件接受三个参数:request(请求对象)、response(响应对象)和next(下一个中间件)。其主要职责是对请求进行加工,并决定是否调用下一个中间件或终止请求处理流程。

中间件类型

  • 静态中间件:不修改请求内容,只将请求传递给下一个中间件。
  • function uselessMiddleware(req, res, next) {    next();}
    1. 错误处理中间件:通过传递错误信息终止请求处理流程。
    2. function uselessMiddleware(req, res, next) {    next('出错了!');}

      Express中间件的使用

      Express框架提供了use方法用于注册中间件。以下是一个连续调用两个中间件的示例:

      var express = require("express");var http = require("http");var app = express();app.use(function(request, response, next) {    console.log("In comes a " + request.method + " to " + request.url);    next();});app.use(function(request, response) {    response.writeHead(200, { "Content-Type": "text/plain" });    response.end("Hello world!\n");});http.createServer(app).listen(1337);

      路由实现

      通过use方法,开发者可以根据请求路径实现简单的路由控制。例如:

      var express = require("express");var app = express();app.use(function(request, response, next) {    if (request.url == "/") {        response.writeHead(200, { "Content-Type": "text/plain" });        response.end("Welcome to the homepage!\n");    } else {        next();    }});app.use(function(request, response, next) {    if (request.url == "/about") {        response.writeHead(200, { "Content-Type": "text/plain" });        response.end("About页面内容!\n");    } else {        next();    }});

      通过上述代码,开发者可以根据请求路径自由定义不同的响应行为。

    转载地址:http://qxjfk.baihongyu.com/

    你可能感兴趣的文章
    NLP:从头开始的文本矢量化方法
    查看>>
    NLP:使用 SciKit Learn 的文本矢量化方法
    查看>>
    nmap 使用方法详细介绍
    查看>>
    nmap使用
    查看>>
    Nmap扫描教程之Nmap基础知识
    查看>>
    nmap指纹识别要点以及又快又准之方法
    查看>>
    Nmap渗透测试指南之指纹识别与探测、伺机而动
    查看>>
    Nmap端口扫描工具Windows安装和命令大全(非常详细)零基础入门到精通,收藏这篇就够了
    查看>>
    NMAP网络扫描工具的安装与使用
    查看>>
    NMF(非负矩阵分解)
    查看>>
    nmon_x86_64_centos7工具如何使用
    查看>>
    NN&DL4.1 Deep L-layer neural network简介
    查看>>
    NN&DL4.3 Getting your matrix dimensions right
    查看>>
    NN&DL4.7 Parameters vs Hyperparameters
    查看>>
    NN&DL4.8 What does this have to do with the brain?
    查看>>
    nnU-Net 终极指南
    查看>>
    No 'Access-Control-Allow-Origin' header is present on the requested resource.
    查看>>
    No 'Access-Control-Allow-Origin' header is present on the requested resource.
    查看>>
    NO 157 去掉禅道访问地址中的zentao
    查看>>
    no available service ‘default‘ found, please make sure registry config corre seata
    查看>>