广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >Node后端Express框架安装及应用
  • 939
分享到

Node后端Express框架安装及应用

2024-04-02 19:04:59 939人浏览 泡泡鱼
摘要

目录Express 框架核心特性:Express安装方式一:安装express-generator创建项目项目目录如下方式二: 自己搭建环境express 初体验请求和响应返回数据E

Express 框架核心特性:

  • 可以设置中间件来响应 Http 请求。
  • 定义了路由表用于执行不同的 HTTP 请求动作。
  • 可以通过向模板传递参数来动态渲染 html 页面。

Express安装

express的使用过程有两种方式:

  •  方式一:通过express提供的脚手架,直接创建一个应用的骨架;
  • 方式二:从零搭建自己的express应用结构;

方式一:安装express-generator


npm install -g express-generator

创建项目


express express-app

项目目录如下

├── app.js
├── bin
│   └── www
├── package-lock.json
├── package.json
├── public
│   ├── images
│   ├── javascripts
│   └── stylesheets
│       └── style.CSS
├── routes
│   ├── index.js
│   └── users.js
└── views
    ├── error.jade
    ├── index.jade
    └── layout.jade

之后 cd 进入到对应的目录下,然后将项目跑起来:


npm install 
node bin/www
node app.js   

方式二: 自己搭建环境

上面通过express提供的脚手架,直接创建一个应用的骨架;现在我们自己从零搭建项目:

初始化一个新的项目:


npm init -y

安装express:


npm install express

新建app.js

在这里插入图片描述

express 初体验

现在搭建自己的第一个express程序:在app.js中加入如下代码


const express = require('express');
// 创建服务器
const app = express();
app.get('/',(req,res) => {
  res.end("Hello World");
});
app.listen(8000,() => {
  console.log("服务器启动成功~");
})

进入项目根目录下,在终端中将服务器跑起来:


node app.js

到浏览器:访问localhost:8000即可

请添加图片描述

请求和响应

请求的路径中如果有一些参数,可以这样表达:

/users/:userId

request对象中要获取可以通过req.params.userId;

返回数据

返回数据,我们可以方便的使用json

res.json(数据)方式;


const express = require('express');
const app = express();
app.get('/users/:userId', (req, res, next) => {
  console.log(req.params.userId);
  res.json({username: "liyingxia", passWord: "8i8i8i8i" });
});
app.listen(8000, () => {
  console.log("静态服务器启动成功~");
})

Express 中间件

认识中间件

Express是一个路由和中间件的WEB框架,它本身的功能非常少:

Express应用程序本质上是一系列中间件函数的调用;

中间是什么?

中间件的本质就是一个回调函数;

这个回调函数接受三个参数:

请求对象(request对象);

响应对象(response对象);

next函数(在express中定义的用于执行下一个中间件的函数);

中间件中可以执行哪些任务?

执行任何代码;

更改请求(request)和响应(response)对象;

结束请求-响应周期(返回数据);

调用栈中的下一个中间件;

如果当前中间件功能没有结束请求-响应周期,则必须调用 next()将控制权传递给下一个中间件功能,否则,请求将被挂起。

使用中间件

express主要提供了两种方式:app/router.useapp/router.methods这两种方式把中间件应用到我们的应用程序中;

methods指的是常用的请求方式,比如:app.getapp.post


// express 中间件的使用
const express = require('express');
const res = require('express/lib/response');
const app = express();
app.use((req,res,next) => {
  console.log("middleware");
  next();
});
app.use((req,res,next) => {
  console.log("middleware");
  res.end("Hello Common Middleware");
})
app.listen(9000,()=>{
  console.log("中间件服务器启动成功~")
})

path匹配中间件:


//path 路径匹配中间件
app.use('/home',(req,res,next) => {
  console.log("home middleware 中间件");
  next();
});
app.use('/home',(req,res,next) => {
  console.log("home middleware02");
  next();
  res.end("middleware");
});
app.use((req,res,next) =>{
   console.log("middleware");
})

path 和 method 匹配中间件


// path 和 method 匹配中间件
app.get('/home',(req,res,next) => {
  console.log("home get middleware");
  next();
})
app.post('/login',(req,res,next) => {
  console.log("login post middleware");
  next();
});
app.use((req,res,next) => {
  console.log("common middleware");
})
app.use(express.json());
app.use(express.urlencoded({extended:true}));
app.post('/login',(req,res,next) => {
  console.log(req.body);
  res.end("登陆成功~");
});

日志记录中间件

如果我们希望将请求日志记录下来,那么可以使用express官网开发的第三方库:morgan
morgan安装:


npm install morgan

如何用?直接作为中间件使用即可:


const loggerWriter = fs.createWriteStream('./log/access.log', {
  flags: 'a+'
})
app.use(morgan('combined', {stream: loggerWriter}));

上传文件中间件

图片上传我们可以使用express官方开发的第三方库:multer

multer安装:


npm install multer

上传文件:


const upload = multer({
  dest: "uploads/"
})

app.post('/upload', upload.single('file'), (req, res, next) => {
  console.log(req.file.buffer);
  res.end("文件上传成功~");
})

添加上传文件后缀名:


const storage = multer.diskStorage({
  destination: (req, file, cb) => {
    cb(null, "uploads/")
  },
  filename: (req, file, cb) => {
    cb(null, Date.now() + path.extname(file.originalname));
  }
})
const upload = multer({
  storage
})
app.post('/upload', upload.single('file'), (req, res, next) => {
  console.log(req.file.buffer);
  res.end("文件上传成功~");
})

上传多张图片:


app.use('/upload', upload.array('files'), (req, res, next) => {
  console.log(req.files);
});

请求和响应

客户端传递到服务器参数的方法常见的是5种:

方式一:通过get请求中的URL的params;

方式二:通过get请求中的URL的query;

方式三:通过post请求中的body的json格式;

方式四:通过post请求中的body的x-www-form-urlencoded格式;

方式五:通过post请求中的form-data格式;

请求解析

方式一:params

请求地址: http://locahost:8000/login/asd/ass

获取参数:


app.use('/login/:id/:name', (req, res, next) => {
  console.log(req.params);
  res.json("请求成功~");
})

方式二:query

请求地址:http://localhost:8000/login?username=liyingxia&password=123456
获取参数:


app.use('/login', (req, res, next) => {
  console.log(req.query);
  res.json("请求成功~");
})

方式三:通过post请求中的body的json格式;

在客户端发送post请求时,会将数据放到body中:客户端可以通过json的方式传递,也可以通过form表单的方式传递;

自己编写中间件来解析JSON:


app.use((req, res, next) => {
  if (req.headers['content-type'] === 'application/json') {
    req.on('data', (data) => {
      const userInfo = JSON.parse(data.toString());
      req.body = userInfo;
    })
    req.on('end', () => {
      next();
    })
  } else {
    next();
  }
})
app.post('/login', (req, res, next) => {
  console.log(req.body);
  res.end("登录成功~");
});

适用express内置的中间件或者使用body-parser来完成:


app.use(express.json());
app.post('/login', (req, res, next) => {
  console.log(req.body);
  res.end("登录成功~");
});

方式四:通过post请求中

body的x-www-form-urlencoded格式;

在这里插入图片描述

解析application/x-www-form-urlencoded:

可以使用express自带的 urlencoded函数来作为中间件:

传入的extended用于表示使用哪一种解析方式:

  • true:使用qs第三方模块;
  • false:使用querystring内置模块;

app.use(express.json());
app.use(express.urlencoded({extended: true}));

app.post('/login', (req, res, next) => {
  console.log(req.body);
  res.end("登录成功~");
});

方式五:通过post请求中的form-data格式;

通过any借助multer去解析一些form-data中的普通数据:

在这里插入图片描述


app.use(upload.any());
app.use('/login', (req, res, next) => {
  console.log(req.body);
});

响应方式

end()类似于http中的response.end方法;


res.end("获取成功~")

json()json方法中可以传入很多的类型:

object、array、string、boolean、number、null等,都会被转换成json格式返回


res.json({name:"liyignxia",password:"123456"});

status()设置状态码


res.status(200);

路由的使用

使用express.Router来创建一个路由处理程序:一个Router实例拥有完整的中间件和路由系统;


// 用户相关的处理
const userRouter = express.Router();

userRouter.get('/', (req, res, next) => {
  res.end("用户列表");
});

userRouter.post('/', (req, res, next) => {
  res.end("创建用户");
});

userRouter.delete('/', (req, res, next) => {
  res.end("删除用户");
});

app.use('/users', userRouter);

静态资源服务器

Node也可以作为静态资源服务器,并且express给我们提供了方便部署静态资源的方法;


const express = require('express');
const app = express();
app.use(express.static('./build'));
app.listen(8000, () => {
  console.log("静态服务器启动成功~");
})

错误处理方式


app.use((req, res, next) => {
  next(new Error("USER DOES NOT EXISTS"));
});
app.use((err, req, res, next) => {
  const message = err.message;
  switch (message) {
    case "USER DOES NOT EXISTS":
      res.status(400).json({message})
  }
  res.status(500)
})

--结束END--

本文标题: Node后端Express框架安装及应用

本文链接: https://www.lsjlt.com/news/133799.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Node后端Express框架安装及应用
    目录Express 框架核心特性:Express安装方式一:安装express-generator创建项目项目目录如下方式二: 自己搭建环境express 初体验请求和响应返回数据E...
    99+
    2022-11-12
  • windows下安装nodejs及框架express
    以下通过两种方式介绍windows下安装node.js及框架express 第一种方式: 总共分为四步轻松完成Nodejs的Express安装 第一步、安装 所有要先按装express-generator,...
    99+
    2022-06-04
    框架 windows nodejs
  • nodejs怎么使用Express框架写后端接口
    本文小编为大家详细介绍“nodejs怎么使用Express框架写后端接口”,内容详细,步骤清晰,细节处理妥当,希望这篇“nodejs怎么使用Express框架写后端接口”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧...
    99+
    2023-06-30
  • Node后端框架Nest.js的AOP 架构有什么用
    这篇文章主要介绍Node后端框架Nest.js的AOP 架构有什么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Nest.js 是一个 Nodejs 的后端框架,它对 expres...
    99+
    2022-10-19
  • nodejs使用Express框架写后端接口的全过程
    目录路由和接口接口传参GET接口POST接口-普通键值对POST接口-JSONPOST接口-form-data文件上传总结在写接口前,我们要明白什么是接口,在前端我们叫接口,而后端就...
    99+
    2022-11-13
  • 详解PythonFlask框架的安装及应用
    目录1.安装1.1 创建虚拟环境1.2 进入虚拟环境1.3 安装 flask2.上手2.1 最小 Demo2.2 基本知识3.解构官网指导 Demo3.1 克隆与代码架构分析3.2 ...
    99+
    2022-11-11
  • Python Flask框架如何安装及应用
    本篇内容主要讲解“Python Flask框架如何安装及应用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python Flask框架如何安装及应用”吧!1.安装1.1 创建...
    99+
    2023-06-30
  • nvm安装方法以及安装后node不能使用解决
    nvm安装地址:Releases · coreybutler/nvm-windows · GitHub 下载nvm-setup.zip,一路安装即可 n...
    99+
    2023-05-16
    nvm安装教程 nvm安装失败 nvm安装node失败
  • python脚本框架webpy入门安装及应用创建
    目录一:安装二:URL 处理三:类四:创建一个应用五:实例一:安装 pip install web.py 或者 http://xiazai.jb51.net/202111/y...
    99+
    2022-11-12
  • Python Flask框架模块怎么安装及使用
    这篇文章主要介绍“Python Flask框架模块怎么安装及使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python Flask框架模块怎么安装及使用”文章能帮助大家解决问...
    99+
    2023-07-05
  • Python之Scrapy爬虫框架安装及使用详解
    题记:早已听闻python爬虫框架的大名。近些天学习了下其中的Scrapy爬虫框架,将自己理解的跟大家分享。有表述不当之处,望大神们斧正。 一、初窥Scrapy Scrapy是一个为了爬取网站数据,提取结构...
    99+
    2022-06-04
    爬虫 详解 框架
  • 轻量级ORM框架Dapper应用之安装Dapper
    一、Dapper简介 Dapper是一款轻量级ORM框架,为解决网站访问流量极高而产生的性能问题而构造,主要通过执行TSQL表达式而实现数据库的CQRS。 如果你在项目中遇到性能访问...
    99+
    2022-11-13
  • Linux下如何安装Qt应用程序开发框架
    这篇文章主要介绍“Linux下如何安装Qt应用程序开发框架”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Linux下如何安装Qt应用程序开发框架”文章能帮助大家解决问题。Qt是一个跨平台的C++图形...
    99+
    2023-06-27
  • 安全开发-JS应用&NodeJS指南&原型链污染&Express框架&功能实现&审计&WebPack打包器&第三方库JQuery&安装使
    文章内容 环境搭建-NodeJS-解析安装&库安装安全问题-NodeJS-注入&RCE&原型链案例分析-NodeJS-CTF题目&源码审计打包器-WebPack-使用&安全第三方库-JQuery-使用&安全 环境搭建-NodeJ...
    99+
    2023-08-30
    javascript 安全 express
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作