Nodejs-Express框架
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框架相关推荐
- 安装nodejs express框架时express命令行无效
我也是看了这篇才明白.http://jingyan.baidu.com/article/922554468a3466851648f419.html 最近在看一本书,nodejs开发指南. 至于出现这个 ...
- NodeJs Express 4.x 入门
前言:在Express框架从3.x升级到4.x,进行了较大的变动,最主要的是替换掉中件间库connect,而改用多个更细粒度的库来取代.这样做法的好处是这些中间件能更自由的更新和发布,不会受到Expr ...
- Express框架使用以及数据库公共操作类整理(Win7下的NodeJs)
具体步骤: 1.安装开发工具WebStorm: 2.安装node/npm(下载地址:https://nodejs.org/download/)选择适合你的xxx.mis安装: 3.安装express框 ...
- 在nodeJs的Express框架下用TypeScript编写router路由出现import关键字错误的解决方案
在nodeJs的Express框架下用TypeScript编写router路由出现import关键字错误的解决方案 参考文章: (1)在nodeJs的Express框架下用TypeScript编写ro ...
- Ajax学习:nodejs安装+express框架介绍
ajsx应用中,需要安装nodejs环境 基于Chrome V8引擎(和浏览器上的谷歌的解析引擎一样)JavaScript运行环境 (31条消息) Node.js_安装_哇嘎123的博客-CSDN博客 ...
- Nodejs之Express框架
Nodejs之Express框架 Express 简介 安装 Express 第一个 Express 框架实例 请求和响应 路由 静态文件 GET 方法 POST 方法 文件上传 Cookie 管理 ...
- NodeJS,EXpress框架的一知半解
一,什么是nodejs node.js是一个基于chrome V8引擎的JavaScript运行环境 (node.js并不是一门新的语言) 二.node.js的特点 1.事件驱动 2.非阻塞I/O 3 ...
- express框架在nodejs中的使用+解决跨域问题(cors三方库)
第一部分commonJS使用第三方框架 一.托管静态资源(让用户直接访问静态资源) 例如,如上url分别是请求一张图片,一份样式文件,一份js代码.我们实现的web服务器需要能够直接返回这些文件的内容 ...
- nodejs安装express框架
安装express框架 npm install express -gd -g代表安装到NODE_PATH的lib里面,而-d代表把相依性套件也一起安装.如果沒有-g的话会安装目前所在的目录(会建立一个 ...
- (九)nodejs循序渐进-Express框架(进阶篇)
Express 框架 Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具. 使用 Express 可以快速 ...
最新文章
- MySql 、Oracle 获取表结构和字段信息
- chrome jsp 显示不正常_JSP程序在chrome下不兼容的问题!
- 初学python需要安装哪些-致Python初学者 Anaconda入门使用指南完整版
- Microsoft.CSharp.targets不存在解决方法
- 原理优先的重要性_就signal探讨
- 数据预处理第4讲:缺失值填补
- 小乌龟Git工具使用
- 无线通信中的IQ调制,BPSK调制,QPSK调制,16QAM调制的理解
- html编辑字体的英文解释,html的字体名字(英文)
- 耗时两周,纯手敲python入门级基础笔记
- gbox推荐源_GBox
- 吴恩达深度学习笔记(五)
- 初入职场,菜鸟北漂记
- 读《自控力:斯坦福大学最受欢迎心理学课程》体会
- 从像素之间谈起:像素游戏的画面增强
- ArcBlock ⑦ 月报 | Forge 框架升级更新 开发者社区建设如火如荼
- Ubuntu上安装搜狗中文输入法
- PB8 0应用程序编译发布技术研究
- 看一遍就理解:IO模型详解
- ART笔记1:模糊自适应共振理论
热门文章
- petri matlab,Matlab-Petri 基于 的双足机器人编译程序及仿真实现的设计 AI-NN-PR 人工智能/神经网络 256万源代码下载- www.pudn.com...
- 魔兽世界怀旧服显示从服务器断开,魔兽世界怀旧服服务器断开连接该怎么办_怀旧服服务器断开连接解决方法_3DM网游...
- 《第一行代码》第三版笔记
- 观察者模式解读厦门建国以来最强台风
- MySQL视图和索引
- 【笑小枫的SpringBoot系列】【九】SpringBoot用户登录功能实现
- Java笔记--自己工作涉及
- 华为HCIE 论述 ISIS割接
- Rectangle用法简介
- 两个复数相加减c语言编程,用c语言 如何编写两个复数的运算啊 都含有虚部 谢谢啊...