nodejs的express框架

Express是Node.js中的轻量级Web应用框架,提供丰富的HTTP工具和中间件,简化API开发。本文介绍Express安装、常用中间件如body-parser和multer,以及如何实现静态文件托管。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

express框架的简介

Express 是一个保持最小规模的灵活的 Node.js Web 应用程序开发框架,为 Web 和移动应用程序提供一组强大的功能。它有丰富的HTTP工具以及来自Connect框架的中间件随取随用,使创建强健、友好的API变得快速又简单。

express的安装

npm init -y 初始化
npm i express 安装插件
下面是一个exprss的小demo

//导入express模块
const express = require("express");
//创建服务器对象
const app = express();

//建立监听
 
app.listen(3000,function(){
	console.log("success")
})

exprss里面常用的中间件

  • body-parser
    • body-parser是一个HTTP请求体解析的中间件,使用这个模块可以解析JSON、Raw、文本、URL-encoded格式的请求体.
    • 通常用于post请求中,用于解析请求体返回的数据
    • 安装
      • npm init -y npm i body-parser

        const express = require("express");
        //导入中间件模块
        const bodyParser = require("body-parser");
        //创建服务器对象
        const app = express();
        //这句一定一定要加上,要不然返回的结果是undefined
        var urlencodedParser = bodyParser .urlencoded({ extended: false })
        app.post('/r', urlencodedParser, function (req, res) {
         res.send('welcome, ' + req.body.username)
        })
        
        app.post("/register", (req, res) => {
           console.log(req); 
           console.log(req.body);
        })
        app.listen(3000,function(){
        console.log("success")
        })
        
  • multer
    • 类似body-parser的功能,区别于body-parser的主要是multer可以传递文件,而body-parser不能,但是他们都是用于post请求
    • npm i multer
      const express = require("express");
      const dbTool = require("./dbTool");
      const path = require("path");
      //导入multer模块
      const multer  = require('multer');
      //图片根目录
      const upload = multer({ dest: 'views/imgs/' })
      //接口名   图名名  
      app.post('/updatahero', upload.single('heroIcon'), function (req, res, next) {
        const heroName = req.body.heroName;
        const heroSkill = req.body.heroSkill;
        const id = req.body.id;
        //拼接图片路径
        const heroIcon = path.join("imgs", req.file.filename);
        console.log(id);
        
        // 加入数据库
        dbTool.update("cqList", {_id : dbTool.ObjectId(id)}, {heroName, heroIcon, heroSkill}, result => {
            res.send({
                msg : "ok",
                status : 100
            })                    
        })
      })
      
  • cookie-parser 解析Cookie的工具。通过req.cookie就可以获取到传过来的cookie,并把他们转化成对象

express静态托管

使用 Express 中的 express.static 内置中间件函数,可以提供诸如图像、CSS 文件和 JavaScript 文件之类的静态文件。
在这里插入图片描述

// 静态资源托管
app.use(express.static("views"));

这样我们就可以直接从服务器访问views里面的静态文件,比如图片、html文件、js文件、css文件等
在这里插入图片描述

request和response

  • Request 对象 :
    • request对象表示HTTP请求,包含了请求查询字符串,参数,内容,HTTP头部等属性。
    • 常用属性:
      • req.path:获取请求路径
      • req.query:获取URL的查询参数串
      • req.body / req.cookies:获得「请求主体」/ Cookies
      • req.route:获取当前匹配的路由
      • req.ip:获取主机名和IP地址
  • Response 对象
    • response对象表示HTTP响应,即在接收到请求时向客户端发送的HTTP响应数据。
    • 常用属性
      • res.cookie(name,value [,option]):设置Cookie
      • res.clearCookie():清除Cookie
      • res.json():传送JSON响应
      • res.send():传送HTTP响应
      • res.sendFile(path [,options] [,fn]):传送指定路径的文件 -会自动根据文件extension设定Content-Type
  • 区别于联系:Request 对象和 Response 对象起到了服务器与客户机之间的信息传递作用。Request 对象用于接收客户端浏览器提交的数据,而 Response 对象的功能则是将服务器端的数据发送到客户端浏览器。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值