1. 认识Web框架

  • 目前在Node中比较流行的Web服务器框架是express、koa;
  • express早于koa出现,并且在Node社区中迅速流行起来:
  • 可以基于express快速、方便的开发自己的Web服务器;
  • 并且可以通过一些实用工具和中间件来扩展自己功能;

Express整个框架的核心就是中间件

2. Express安装

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

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

方式一:安装express-generator

安装脚手架

npm install -g express-generator

创建项目

express express-demo

安装依赖

npm install

启动项目

node bin/www

方式二:从零搭建自己的express应用结构;

npm init -y

3. Express的基本使用

// express本质上是一个函数:createApplication
const express = require('express')
// 创建app
const app = express();// 监听默认路径
// get
app.get('/', (req, res, next) => {res.end("hello express")
})// post
app.post('/', (req, res, next) => {res.end('hello post express')
})// 开启监听
app.listen(8000, () => {console.log('express服务器启动成功')
})

4. 认识中间件

  • Express是一个路由和中间件的Web框架,它本身的功能非常少:
  • Express应用程序本质上是一系列中间件函数的调用;
  • 中间件的本质是传递给express的一个回调函数;
  • 这个回调函数接受三个参数:
    • 请求对象(request对象);
    • 响应对象(response对象);
    • next函数(在express中定义的用于执行下一个中间件的函数);
  • 中间件中可以执行哪些任务
    • 执行任何代码;
    • 更改请求(request)和响应(response)对象;
    • 结束请求-响应周期(返回数据);
    • 调用栈中的下一个中间件;
const express = require('express')const app = express();// 编写普通的中间件
// use注册一个中间件(回调函数)
app.use((req, res, next) => {console.log('注册了01普通中间件')res.end('hello world')next()
})
app.use((req, res, next) => {console.log('注册了02普通中间件')next()
})
app.use((req, res, next) => {console.log('注册了03普通中间件')
})app.listen(8000, () => {console.log('普通中间件启动成功')
})

5. 应用中间件 – 自己编写

express主要提供了两种方式:app/router.use和app/router.methods;

6. 客户端发送请求的方式

  • 方式一:通过get请求中的URL的params;
  • 方式二:通过get请求中的URL的query;
  • 方式三:通过post请求中的body的json格式;
  • 方式四:通过post请求中的body的x-www-form-urlencoded格式;
  • 方式五:通过post请求中的form-data格式;

7. 响应数据

end方法

  • 类似于http中的response.end方法,用法是一致的

json方法

  • json方法中可以传入很多的类型:object、array、string、boolean、number、null等,它们会被转换成 json格式返回;

status方法

  • 用于设置状态码

8. Express的路由

以使用 express.Router来创建一个路由处理程序:

  • 一个Router实例拥有完整的中间件和路由系统;

user.js

const express = require('express')const router = express.Router()router.get('/', (req, res, next) => {res.json(["why", "kobe", "lilei"])
})router.get('/:id', (req, res, next) => {res.json(`${req.params.id}用户的信息`)
})router.post('/', (req, res, next) => {res.json("create user success")
})module.exports = router
// express本质上是一个函数:createApplication
const express = require('express')
const userRouter = require('./routers/users')
// 创建app
const app = express();// 注册路由
app.use("/users", userRouter)
app.use("/products", productRouter)// 开启监听
app.listen(8000, () => {console.log('express路由服务器启动成功')
})

9. 静态资源服务器

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

10. 服务端的错误处理

// express本质上是一个函数:createApplication
const express = require('express')
// 创建app
const app = express();const USERNAME_DOES_NOT_EXISTS = "USERNAME_DOES_NOT_EXISTS";
const USERNAME_ALREADY_EXISTS = "USERNAME_ALREADY_EXISTS";app.post('/login', (req, res, next) => {// 加入在数据中查询用户名时, 发现不存在const isLogin = false;if (isLogin) {res.json("user login success~");} else {// res.type(400);// res.json("username does not exists~")next(new Error(USERNAME_DOES_NOT_EXISTS));}
})app.post('/register', (req, res, next) => {// 加入在数据中查询用户名时, 发现不存在const isExists = true;if (!isExists) {res.json("user register success~");} else {// res.type(400);// res.json("username already exists~")next(new Error(USERNAME_ALREADY_EXISTS));}
});app.use((err, req, res, next) => {let status = 400let message = "";switch(err.message) {case USERNAME_DOES_NOT_EXISTS:message = "username does not exists~"break;case USERNAME_ALREADY_EXISTS:message = "username alreday exists~"break;default:message = "NOT FOUND~"}res.status(status)res.json({errCode: status,errMessage: message})
})// 开启监听
app.listen(8000, () => {console.log('express服务器启动成功')
})

Nodejs-Express框架相关推荐

  1. 安装nodejs express框架时express命令行无效

    我也是看了这篇才明白.http://jingyan.baidu.com/article/922554468a3466851648f419.html 最近在看一本书,nodejs开发指南. 至于出现这个 ...

  2. NodeJs Express 4.x 入门

    前言:在Express框架从3.x升级到4.x,进行了较大的变动,最主要的是替换掉中件间库connect,而改用多个更细粒度的库来取代.这样做法的好处是这些中间件能更自由的更新和发布,不会受到Expr ...

  3. Express框架使用以及数据库公共操作类整理(Win7下的NodeJs)

    具体步骤: 1.安装开发工具WebStorm: 2.安装node/npm(下载地址:https://nodejs.org/download/)选择适合你的xxx.mis安装: 3.安装express框 ...

  4. 在nodeJs的Express框架下用TypeScript编写router路由出现import关键字错误的解决方案

    在nodeJs的Express框架下用TypeScript编写router路由出现import关键字错误的解决方案 参考文章: (1)在nodeJs的Express框架下用TypeScript编写ro ...

  5. Ajax学习:nodejs安装+express框架介绍

    ajsx应用中,需要安装nodejs环境 基于Chrome V8引擎(和浏览器上的谷歌的解析引擎一样)JavaScript运行环境 (31条消息) Node.js_安装_哇嘎123的博客-CSDN博客 ...

  6. Nodejs之Express框架

    Nodejs之Express框架 Express 简介 安装 Express 第一个 Express 框架实例 请求和响应 路由 静态文件 GET 方法 POST 方法 文件上传 Cookie 管理 ...

  7. NodeJS,EXpress框架的一知半解

    一,什么是nodejs node.js是一个基于chrome V8引擎的JavaScript运行环境 (node.js并不是一门新的语言) 二.node.js的特点 1.事件驱动 2.非阻塞I/O 3 ...

  8. express框架在nodejs中的使用+解决跨域问题(cors三方库)

    第一部分commonJS使用第三方框架 一.托管静态资源(让用户直接访问静态资源) 例如,如上url分别是请求一张图片,一份样式文件,一份js代码.我们实现的web服务器需要能够直接返回这些文件的内容 ...

  9. nodejs安装express框架

    安装express框架 npm install express -gd -g代表安装到NODE_PATH的lib里面,而-d代表把相依性套件也一起安装.如果沒有-g的话会安装目前所在的目录(会建立一个 ...

  10. (九)nodejs循序渐进-Express框架(进阶篇)

    Express 框架 Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具. 使用 Express 可以快速 ...

最新文章

  1. MySql 、Oracle 获取表结构和字段信息
  2. chrome jsp 显示不正常_JSP程序在chrome下不兼容的问题!
  3. 初学python需要安装哪些-致Python初学者 Anaconda入门使用指南完整版
  4. Microsoft.CSharp.targets不存在解决方法
  5. 原理优先的重要性_就signal探讨
  6. 数据预处理第4讲:缺失值填补
  7. 小乌龟Git工具使用
  8. 无线通信中的IQ调制,BPSK调制,QPSK调制,16QAM调制的理解
  9. html编辑字体的英文解释,html的字体名字(英文)
  10. 耗时两周,纯手敲python入门级基础笔记
  11. gbox推荐源_GBox
  12. 吴恩达深度学习笔记(五)
  13. 初入职场,菜鸟北漂记
  14. 读《自控力:斯坦福大学最受欢迎心理学课程》体会
  15. 从像素之间谈起:像素游戏的画面增强
  16. ArcBlock ⑦ 月报 | Forge 框架升级更新 开发者社区建设如火如荼
  17. Ubuntu上安装搜狗中文输入法
  18. PB8 0应用程序编译发布技术研究
  19. 看一遍就理解:IO模型详解
  20. ART笔记1:模糊自适应共振理论

热门文章

  1. petri matlab,Matlab-Petri 基于 的双足机器人编译程序及仿真实现的设计 AI-NN-PR 人工智能/神经网络 256万源代码下载- www.pudn.com...
  2. 魔兽世界怀旧服显示从服务器断开,魔兽世界怀旧服服务器断开连接该怎么办_怀旧服服务器断开连接解决方法_3DM网游...
  3. 《第一行代码》第三版笔记
  4. 观察者模式解读厦门建国以来最强台风
  5. MySQL视图和索引
  6. 【笑小枫的SpringBoot系列】【九】SpringBoot用户登录功能实现
  7. Java笔记--自己工作涉及
  8. 华为HCIE 论述 ISIS割接
  9. Rectangle用法简介
  10. 两个复数相加减c语言编程,用c语言 如何编写两个复数的运算啊 都含有虚部 谢谢啊...