我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Node.js中Express框架怎么用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Node.js中Express框架怎么用

本篇内容主要讲解“Node.js中Express框架怎么用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Node.js中Express框架怎么用”吧!

很多语言都有一些框架,这些框架可以帮助我们更加快捷地开发以及维护项目,像 JS 就有 Vue、React、Angular 等流行框架;而 Node.js 也不例外,它也有一些框架可以帮助我们开发 Node.js 项目。

目前比较流行的 Node.js 框架有 ExpressKoa 和 Egg.js,无论是哪个 Node.js 框架,都是基于中间件来实现的,而中间件的执行方式就需要依据洋葱模型。

洋葱模型

抽象一点解释,就是从洋葱中心点穿过去,就必须先一层层向内穿入洋葱表皮进入中心点,然后再从中心点一层层向外穿出表皮,这里有个特点:进入时穿入了多少层表皮,出去时就必须穿出多少层表皮。先穿入表皮,后穿出表皮,这种结构是符合栈结构先进后出的原则的。

在 Node.js 框架中,洋葱的表皮我们可以定义为中间件

  • 从外向内进入中心点的过程是一个关键词 next()

  • 而从内向外则是每个中间件执行完毕后,进入下一层中间件,一直到最后一层。

下面来简单了解一些 Express 框架吧!

Express

Express 是 Node.js 中 HTTP 服务的一个框架,而要了解一个框架,最好的方法是

  • 去了解它的关键功能

  • 推导出它要解决的问题是什么

那要了解它的关键功能,我们可以去 Express 的网站 查看它的 Features,这些核心功能都是为了让我们更加方便、简洁地写出 HTTP 服务,从而大大减轻我们的开发负担,让我们快速上手开发。

Node.js中Express框架怎么用

一些 Features

  • 路由:将对应路由分开作为模块处理

  • request/response 属性的简化,让我们不需要经过转换,然后直接使用对应的属性。

    • requestpathnamequery 等

    • responsesend()json()jsonp() 等

  • 中间件(next()

    • 更好地组织流程代码

    • 异步会打破 Express 的洋葱模型

Express 改造石头剪刀布游戏

现在通过使用 Express 框架来改造石头剪刀布游戏,game.js 游戏模块和 index.html 页面的代码没有变动,可以去 github 上面 clone

index.js Express 改造,需要先用 npm 安装 expressnpm i express

const fs = require('fs');const express = require('express');const game = require('./game');let playerWon = 0; // 赢的次数const app = express();// 路由功能,将对应路由功能分开作为模块处理,到时候也可以放到其它文件去// 通过 app.get 设定 /favicon.ico 路径的路由// .get 代表请求 method 是 get,所以这里可以用 post、delete 等。这个能力很适合用于创建 rest 服务app.get('/favicon.ico', function (request, response) {  // 一句 status(200) 即可代替 writeHead(200); end();  // response.writeHead(200);  // response.end();  response.status(200);  return;})// 打开页面 index.htmlapp.get('/', function (request, response) {  // fs.createReadStream(__dirname + '/index.html').pipe(response);  // send接口会判断你传入的值的类型,文本的话则会处理为text/html  // Buffer的话则会处理为下载,html文件需要加上 `utf-8`  response.send(fs.readFileSync(__dirname + '/index.html', 'utf-8'))})// next()同步状态下没有问题的,但是一旦有了异步,洋葱模型就打破了app.get('/game',  function (request, response, next) {    if (playerWon >= 3) {      response.status(500);      response.send('我不会再玩了!');      return;    }    // 通过next执行后续中间件    next();    // 当后续中间件执行完之后,会执行到这个位置    if (response.playerWon) {      playerWon++;    }  },  // 获取玩家的操作  function (request, response, next) {    // Express 中对 request 做了一些处理,可以直接拿到 query 参数    // const query = querystring.parse(parsedUrl.query);    // const playerAction = query.action;    const query = request.query;    const playerAction = query.action;    response.playerAction = playerAction;    // 通过next执行后续中间件    next();  },  function (request, response) {    // 通过 response 去挂载一些参数    let playerAction = response.playerAction;    // 执行游戏逻辑    const gameRes = game(playerAction);    // 先返回头部    // response.writeHead(200);    response.status(200);    // 根据不同的游戏结果返回不同的说明    if (gameRes == 0) {      // response.end('平局!');      response.send('平局!');    } else if (gameRes == 1) {      response.send('你赢了!');      // 玩家胜利次数统计+1      // playerWon++;      response.playerWon = true;    } else {      response.send('你输了!');    }  })app.listen(3000);

到此,相信大家对“Node.js中Express框架怎么用”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Node.js中Express框架怎么用

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

下载Word文档

猜你喜欢

Node.js中Express框架怎么用

本篇内容主要讲解“Node.js中Express框架怎么用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Node.js中Express框架怎么用”吧!很多语言都有一些框架,这些框架可以帮助我们更
2023-06-17

Node.js的Express框架怎么使用

本文小编为大家详细介绍“Node.js的Express框架怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Node.js的Express框架怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。目前比较流
2023-07-04

Node.js中Express框架怎么使用axios同步请求

这篇文章主要介绍了Node.js中Express框架怎么使用axios同步请求的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Node.js中Express框架怎么使用axios同步请求文章都会有所收获,下面我们
2023-07-06

Node.js Express 框架 POST方法详解

POST 方法 以下实例演示了在表单中通过 POST 方法提交两个参数,我们可以使用 server.js 文件内的 process_post 路由器来处理输入: index.htm 文件代码修改如下:
2022-06-04

Node.js的Express框架使用上手指南

Express介绍 npm提供了大量的第三方模块,其中不乏许多Web框架,比如我们本章节要讲述的一个轻量级的Web框架 ——— Express。 Express是一个简洁、灵活的node.js Web应用开发框架, 它提供一系列强大的功能,
2022-06-04

Node.js中Koa框架怎么用

这篇文章主要介绍“Node.js中Koa框架怎么用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Node.js中Koa框架怎么用”文章能帮助大家解决问题。KoaKoa 是为了解决 Express 的
2023-06-17

基于node.js express mvc轻量级框架实践

本文记录的是笔者最近抽私下时间给朋友做的一个时时彩自动下注系统,比较简单,主要也是为了学习一下node.js。 其实逻辑没什么可以深谈的,主要是想说说这套代码结构。结构如下图:js的代码比较难以维护,不清楚大家对于这点是否认同,但这里笔者只
2022-06-04

怎么在Centos中安装nodejs和express框架

本篇文章给大家分享的是有关怎么在Centos中安装nodejs和express框架,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一. 下载nodejs 版本wget http:
2023-06-10

Node.js中Express框架使用axios同步请求(async+await)实现方法

这篇文章主要介绍了Node.js中Express框架使用axios同步请求(async+await)实现方法,结合实例形式分析了express框架使用异步交互axios模块实现同步请求的相关操作技巧与注意事项,需要的朋友可以参考下
2023-05-15

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录