热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

express框架如何启动

本文主要介绍关于webstorm,前端的知识点,对【【Express框架、Vs-code、Webstorm中创建Express项目】】和【express框架如何启动】有兴趣的朋友可以看下由【꒰ঌsna

本文主要介绍关于webstorm,前端的知识点,对【【Express框架、Vs-code、Webstorm中创建Express项目】】和【express框架如何启动】有兴趣的朋友可以看下由【꒰ঌsnail໒꒱】投稿的技术文章,希望该技术和经验能帮到你解决你所遇的相关技术问题。

express框架如何启动

目录 一、初识Express1、Express的基础知识2、在vscode中安装Express(法一)3、使用Express搭建Web服务器 二、Express框架的功能1、设立中间件响应http请求2、执行基于HTTP方法和URL不同动作的路由3、允许动态渲染基于参数传递给模板HTML页面 三、在vs-code安装Express(法二),创建Express项目1、安装Express2、查看Express版本号3、创建项目4、修改项目监听的端口号:/bin/www5、安装nodemon模块6、Express项目的目录结构 四、Express中间件1、Express中间件介绍2、中间件的功能3、中间件的组成4、中间件方法5、利用中间件处理静态资源6、利用中间件处理错误 五、Express的模块化路由管理1、使用方法:

一、初识Express
Node框架:半成品,开发人员按照框架的规范(要求)进行不同配置就可以实现不同的需求Node的常用框架:Express、Koa、egg
1、Express的基础知识

封装了http模块,并对http进行了扩展。简化了基于NodeJS的Web服务器端的开发。可以方便的获取请求参数和进行路由处理。

优势:

(1)简洁的路由定义方式。

(2)简化HTTP请求参数的处理。

(3)提供中间件机制控制HTTP请求。

(4)拥有大量第三方中间件。

(5)支持多种模版引擎。

2、在vscode中安装Express(法一)

打开vs-code终端:

使用npm包管理工具安装Express。创建根目录, 并在该目录下新建server目录作为项目的根目录。server目录下执行如下命令。

(1)项目初始化:npm init -y --生成package.json(配置)文件

express框架如何启动

express框架如何启动

express框架如何启动

(2)安装express模块:npm install express --save

express框架如何启动

(3)安装完成后,在当前目录下打开命令行工具执行"npm list express"命令,查看Express版本。

express框架如何启动

3、使用Express搭建Web服务器

利用Express搭建Web服务器的基本步骤:

(1)引入express模块;
(2)调用express()方法创建服务器对象app;
(3)调用get()方法定义GET路由;
(4)调用listen()方法监听端口

//1、引入express模块
const express = require('express')
//2、创建Web服务器对象
const app = express();
//3、创建get路由:接收客户端的get请求,如果是post请求,则用post()方法
app.get('/',(req,res)=>{
   
    res.end('Hello Express!')
})
app.get('/list',(req,res)=>{
   
    res.end('Hello ListPage!')
})
//4、启动监听
app.listen(3000)
 
console.log("服务器运行在3000端口上")

express框架如何启动

express框架如何启动

二、Express框架的功能 1、设立中间件响应http请求 2、执行基于HTTP方法和URL不同动作的路由 3、允许动态渲染基于参数传递给模板HTML页面 三、在vs-code安装Express(法二),创建Express项目

打开cmd窗口:

1、安装Express

安装Express框架全局使用NPM,以便它可以被用来使用Node终端创建Web应用程序。

npm install -g express-generator

express框架如何启动

2、查看Express版本号

express --version

express框架如何启动

3、创建项目

打开vs-code终端:

(1)创建一个目录

(2)进入该目录执行指令:express 项目名

例如:express system

express框架如何启动

(3)进入项目所在目录,执行指令:npm install ( 安装相关依赖模块)

例如: cd system
system> npm install

express框架如何启动

(4)启动项目:npm start ( 项目默认的端口号是3000)

express框架如何启动

请添加图片描述

(5)启动浏览器访问:http://localhost:3000

express框架如何启动

4、修改项目监听的端口号:/bin/www

请添加图片描述

5、安装nodemon模块

安装nodemon模块,实时跟踪源程序的变化。安装完成后打开package.json文件,做如下修改。(动态监听.js文件,改变端口号,要刷新才可以被监听到)

“scripts”: {
“start”: “nodemon ./bin/www”
}

express框架如何启动

express框架如何启动

6、Express项目的目录结构

(1)bin:启动配置文件,在www里修改运行端口号

(2)node_modules:存放所有的项目依赖库

(3)public:用于存放静态资源文件 图片,CSS,Javascript文件

(4)routers:路由文件夹。存放的是路由文件

(5)views:存放页面的地方

(6)package.json:项目的配置信息文件(项目依赖配置及开发者信息)。

(7)app.js:应用核心配置文件,项目入口

express框架如何启动

四、Express中间件 1、Express中间件介绍

Express中间件:中间件(Middleware)是指业务流程的中间处理环节.可以把中间件理解为处理客户端请求的一系列方法。

Express通过中间件接收客户端发来的请求,并对请求做出响应,也可以将请求交给下一个中间件继续处理。

中间件(Middleware)是指业务流程的中间处理环节。可以把中间件理解为处理客户端请求的一系列方法。如果把请求比作水流,那么中间件就是阀门,阀门可以控制水流是否继续向下流动,也可以在当前阀门处对水流进行排污处理,处理完成后再继续向下流动。

express框架如何启动

2、中间件的功能

中间件机制可以实现哪些应用?

路由保护:当客户端访问登录页面时,可以先使用中间件判断用户的登录状态,如果用户未登录,则拦截请求,直接响应提示信息,并禁止用户跳转到登录页面。

维护公告:在所有路由的最上面定义接收所有请求的中间件,直接为客户端做出响应,并提示网站正在维护中。

自定义404页面:在所有路由的最上面定义接收所有请求的中间件,直接为客户端做出响应,并提示404页面错误信息。

3、中间件的组成

中间件主要由中间件方法和请求处理函数这两个部分构成。

(1)中间件方法:由Express 提供,负责拦截请求。

中间件方法作用get()响应用户的get请求post()响应用户的post请求put()响应用户的put请求.通常用于修改数据delete()响应用户的delete请求.通常用于删除数据use()处理所有的请求static()响应用户对静态资源的访问

(2)请求处理函数:由开发人员编写,负责处理请求。

get(‘请求路径’,请求处理函数)

例如:

get(‘/’,(req,res,next)=>{
       处理代码
          next()
                   })

4、中间件方法

常用的中间件方法有app.get()、app.post()、app.use(),其基本语法形式如下:

app.get(‘请求路径’, ‘请求处理函数’); // 接收并处理GET 请求

app.post(‘请求路径’, ‘请求处理函数’); // 接收并处理POST 请求

app.use(‘请求路径’, ‘请求处理函数’); // 接收并处理所有请求

(1)当客户端向服务器端发送GET请求时,app.get()中间件方法会拦截GET请求,并通过app.get()中间件中的请求处理函数对GET请求进行处理。

同一个请求路径可以设置多个中间件,表示对同一个路径的请求进行多次处理,默认情况下Express会从上到下依次匹配中间件。

const express = require('express');
const app = express();
// 定义中间件
app.get('/request', (req, res, next) => {
   
    req.name = '张三';
    next();    //启动下一个中间件
});
app.get('/request', (req, res) => {
   
    res.send(req.name);
});
app.listen(3000);
console.log('服务器启动成功');

express框架如何启动

(2) 当浏览器向服务器发送POST请求时,app.post()定义的中间件会接收并处理POST请求。
下面通过案例演示如何使用app.post()中间件。


    DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>post中间件
      title> 
       head> <body> <from action="http://localhost:3000/post" method="post"> <button type="submit">发送post请求
        button> 
         from> 
          body> 
           html> 

express框架如何启动

const express = require('express');
const app = express();
// 定义中间件
app.post('/post', (req, res, next) => {
   
    req.name = '李四';
    next();
});
app.post('/post', (req, res) => {
   
    res.send(req.name);
});
app.listen(3000);
console.log('服务器启动成功');

express框架如何启动


(3)通过app.use()定义的中间件既可以处理GET请求又可以处理POST请求。在多个app.use()设置了相同请求路径的情况下,服务器都会接收请求并进行处理。

5、利用中间件处理静态资源

使用static() 中间件,在客户端访问服务器的静态资源时使用。

express.static():是express内置的中间件,参数是静态资源所在的目录,要作为app.use的参数。

常用的静态资源有图片、CSS、Javascript和HTML文件等。

express.static()需要作为app.use()的参数使用

下面通过案例演示express.static()中间件如何实现静态资源访问。

const express = require('express');
const app = express();
// 静态资源处理
app.use(express.static('public'));
app.listen(3000);
console.log('服务器启动成功');

express框架如何启动

express框架如何启动


在public 目录下创建index.html文件,用于实现通过浏览器访问静态资源index.html文件,具体代码如下。


    DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title
      title> 
       head> <body> <h1>首页
        h1> 
         body> 
          html> 

express框架如何启动

6、利用中间件处理错误

在程序执行的过程中,不可避免的会出现一些无法预料的错误,比如文件读取失败、数据库连接失败等。 这时候就需要用到错误处理中间件了,用它来集中处理错误。

编写如下代码,实现在app.get()中间件中进行文件读取操作,并在读取发生错误时,返回文件读取失败的错误信息。

const express = require('express');
const fs = require('fs')
 
const app = express();
app.get('/readfile',(req,res,next)=>{
   
    fs.readFile('./a.txt','utf8',(err,result)=>{
   
        if(err != null){
       //若读文件错误,则调用下一个中间件
            next(err);
        }else {
   
            res.send(result)
        }
    })
})
app.use((err,req,res,next)=>{
   
    res.status(500).send(err.message)
})
 
app.listen(3000)
console.log("服务器运行在3000端口上")

express框架如何启动


express框架如何启动

五、Express的模块化路由管理

通过前面讲解的内容,已可以使用app.get()方法app.post()方法来实现简单的路由功能,但没有对路由进行模块化管理。在实际的项目开发中,不推荐将不同功能的路由都混在一起存放在一个文件中,因为随着路由的种类越来越多,管理起来会非常麻烦。为了方便路由的管理,通过express.Router()实现模块化路由管理。

express.Router()方法用于创建路由对象route,然后使用**route.get()和route.post()**来注册当前模块路由对象下的二级路由,这就是一个简单的模块化路由。

1、使用方法:

(1)创建路由文件:扩展名为.js的文件(index.js)

(2)在路由文件中引入express模块

var express = require(‘express’);

(3)使用express模块创建路由器对象

var router = express.Router();

(4)定义中间件响应用户的请求

router.get()或router.post()

(5)导出路由器对象

module.exports = router;

(6)在项目的核心文件app.js中引入路由文件

var indexRouter = require(‘./routes/index’);

(7)指定路由文件的请求路径

app.use(‘/’, indexRouter);

student.js:

//1、引入express模块
var express =require('express');

//2、创建路由器对象
var router = express.Router();

//3、定义中间件:用来响应用户请求
//http://localhost:3000/students/info
router.get('/info',(req, res, next) => {
   
    res.send('你好,我是Student路由器')
})
//http://localhost:3000/students/
router.get('/',(req, res, next) => {
   
    res.send('你好,我是Student的根')
})
//http://localhost:3000/students//postdemo
router.post('/postdemo',(req, res) => {
   
    res.send('你好,这是post的请求')
})
//4、导出路由对象
module.exports =router

强调:自定义路由文件的请求路径的拼接过程
http://localhost:3000/students/info

app.js

var studentRouter =require('./routes/student');
//配置自定义路由文件的请求路径
app.use('/students',studentRouter);

express框架如何启动

express框架如何启动


前后端分离思想,在vs-code写了post.html代码如下:


    DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="token punctuation">"> <title>Document
      title> 
       head> <body> <form action="http://localhost:3000/students/postdemo" method="post"> <button type="submit">提交post请求
        button> 
         form> 
          body> 
           html> 

express框架如何启动

express框架如何启动

本文《【Express框架、Vs-code、Webstorm中创建Express项目】》版权归꒰ঌsnail໒꒱所有,引用【Express框架、Vs-code、Webstorm中创建Express项目】需遵循CC 4.0 BY-SA版权协议。


推荐阅读
  • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
  • 本文介绍了如何使用Express App提供静态文件,同时提到了一些不需要使用的文件,如package.json和/.ssh/known_hosts,并解释了为什么app.get('*')无法捕获所有请求以及为什么app.use(express.static(__dirname))可能会提供不需要的文件。 ... [详细]
  • express工程中的json调用方法
    本文介绍了在express工程中如何调用json数据,包括建立app.js文件、创建数据接口以及获取全部数据和typeid为1的数据的方法。 ... [详细]
  • npmrunbuild后dist文件夹下面直接浏览器打开index.html,css和js的路径都不正确。放到跟目录下就正常了,iis上同样只能在根目录下。我项目的目录如下: ... [详细]
  • 前言:原本纠结于Web模板,选了Handlebars。后来发现页面都是弱逻辑的,不支持复杂逻辑表达式。几乎要放弃之际,想起了Javascript中ev ... [详细]
  • 前言:原本纠结于Web 模板,选了Handlebars。后来发现页面都是弱逻辑的,不支持复杂逻辑表达式。几乎要放弃之际,想起了Javascript中eval函数。虽然eval函 ... [详细]
  • <ItemTemplate><ahref#onclickjavascript:window.location.hrefoa_NoReply.aspx?fid ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 本文讨论了Kotlin中扩展函数的一些惯用用法以及其合理性。作者认为在某些情况下,定义扩展函数没有意义,但官方的编码约定支持这种方式。文章还介绍了在类之外定义扩展函数的具体用法,并讨论了避免使用扩展函数的边缘情况。作者提出了对于扩展函数的合理性的质疑,并给出了自己的反驳。最后,文章强调了在编写Kotlin代码时可以自由地使用扩展函数的重要性。 ... [详细]
  • 如何查询zone下的表的信息
    本文介绍了如何通过TcaplusDB知识库查询zone下的表的信息。包括请求地址、GET请求参数说明、返回参数说明等内容。通过curl方法发起请求,并提供了请求示例。 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • 本文介绍了在Go语言中可见性与scope的规则,包括在函数内外声明的可见性、命名规范和命名风格,以及变量声明和短变量声明的语法。同时,还介绍了变量的生命周期,包括包级别变量和局部变量的生命周期,以及变量在堆和栈上分配的规则和逃逸分析的概念。 ... [详细]
  • QuestionThereareatotalofncoursesyouhavetotake,labeledfrom0ton-1.Somecoursesmayhaveprerequi ... [详细]
  • 先下载nodejs针对windows安装安装就行。自定义安装在对应的文件夹就行安装完之后需要在电脑的环境变量里面添加两个路径通过cmd可以查看自己node的版本号最后通过运行npm ... [详细]
author-avatar
手机用户2502924641
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有