码迷,mamicode.com
首页 > 其他好文 > 详细

express笔记

时间:2017-10-03 23:28:45      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:风格   设置   section   static   代码风格   ref   --   字符串   数组   

在koa出世之前,express是最流行的且少数可选的nodejs web框架,现在出到4.x了,今天决定学一下,至少知道怎么用。

首先梳理一下大致的脉络:

express是一个基于nodejs 的web应用框架,真的很轻巧灵活,它在底层对node的http模块进行了封装,使我们能很轻易地处理web请求/响应.。

express的灵活还体现在,我们可以通过中间件来对请求进行定制化处理。中间件其实就是封装了特定功能的代码片段,在执行response之前,对request进行特定的处理。

express有完善的第三方插件,帮助我们实现服务器的各种功能。

1.安装:

npm install express --save

2.最基本使用:

 1 const express = require(‘express‘)
 2 const app = express()
 3 
 4 app.get(‘/‘, function (req, res) {
 5   res.send(‘Hello World!‘)
 6 })
 7 
 8 app.listen(3000, function () {
 9   console.log(‘Example app listening on port 3000!‘)
10 })

引入并创建一个express实例app,app可以调用各种express封装好的方法,像get、post等,沿袭了nodejs事件回调的代码风格,乍一看,其实和nodejs的写http服务器差不多。

事实上就是如此。毕竟express的方法就是基于node的各种api,但express的封装让我嗯可以更专注在服务器逻辑上。

3.应用生成工具:express-generator (自带命令集)

npm install express-generator -g

安装完后,express可以使用express-generator带来的命令行。输入 express -h ,回车,会罗列出相关命令行。

输入以下命令可以在当前文件夹下创建项目文件夹(骨架)。

express --view=pug myapp

进入该文件夹目录,执行npm install安装相关依赖,再输入:

set DEBUG=myapp:* & npm start

生成的项目默认监听3000端口。

********************************分割线*********************************

4.路由

在单页面应用中,路由是url改变时,显示相应的内容。

express中的路由类似。当请求的method和路径匹配时,对该请求进行处理。

app.METHOD(PATH, HANDLER)  //路由的结构

所以,所谓路由本质上就是一个个处理请求的函数:

 1 app.get(‘/‘, function (req, res) {
 2   res.send(‘Hello World!‘)
 3 })
 4 
 5 app.post(‘/‘, function (req, res) {
 6   res.send(‘Got a POST request‘)
 7 })
 8 
 9 //注意,all并不特定于任何http方法,.all()是用来加载中间件函数的,可用于任何请求类型
10 app.all(‘/secret‘, function (req, res, next) {
11   console.log(‘Accessing the secret section ...‘)
12   next() // pass control to the next handler
13 })

这是最近基本的路由方法。express中,路由路径(route path)的审验可以使用regexp,查询字符串不属于路由路径。而且路由路径可以使用路由参数如:

1 app.get(‘/users/:userId/books/:bookId‘, function (req, res) {
2   res.send(req.params)
3 })

另外路由处理函数可以有多个:

 1 app.get(‘/example/b‘, function (req, res, next) {
 2   console.log(‘the response will be sent by the next function ...‘)
 3   next()
 4 }, function (req, res) {
 5   res.send(‘Hello from B!‘)
 6 })
 7 
 8 //使用数组方式
 9 var cb0 = function (req, res, next) {
10   console.log(‘CB0‘)
11   next()
12 }
13 
14 var cb1 = function (req, res, next) {
15   console.log(‘CB1‘)
16   next()
17 }
18 
19 var cb2 = function (req, res) {
20   res.send(‘Hello from C!‘)
21 }
22 
23 app.get(‘/example/c‘, [cb0, cb1, cb2])

更多可看文档:http://expressjs.com/en/guide/routing.html

5.设置静态文件:express.static(PATH)

Express 提供了内置的中间件 express.static 来设置静态文件夹.用来自行响应客户端的静态资源请求。

1  app.use(express.static(‘public‘))
2  //如果想将服务器上该资源文件夹挂到一个虚拟路径,使用
3  app.use(‘/static‘, express.static(‘public‘))
4  //更妥当的方式
5  app.use(‘/static‘, express.static(path.join(__dirname, ‘public‘)))

 

6.文件上传

7.cookie处理

8.模板引擎

9.数据库集成

...

 

express笔记

标签:风格   设置   section   static   代码风格   ref   --   字符串   数组   

原文地址:http://www.cnblogs.com/alan2kat/p/7624620.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!