express 核心API

1.express.xxx 为express函数内置的中间件

2.app.xxx 为express创建的app对象所具有的属性和方法

3.router.xxx 是跟路由相关的router对象的方法

4.request.xxx 是请求时的request对象所具有的方法

5.response.xxx 是响应时的response对象所具有的方法

express

express是express模块暴露出来的顶级函数,用于生成一个应用

----express内置的中间件

express.json 用来获取json格式的数据 可以再req.body中获取到

const app = express();
app.use(express.json());
app.post('/user',(req,res,next) => {
    console.log(req.body);  // {name:'hello'}
    res.send('express.json')
})

express.row() 用来处理二进制数据

express.text() 用来处理文本数据

express.urlencoded() 用来处理&a=123&b=223这种格式的数据

-----express.static()

用来处理静态文件的获取

const publicPath = path.resolve(__dirname,'public');
app.use(express.static(publicPath));

http://localhost:3000/index.css

express会自动到public目录下查找,因此请求文件的url不要携带public目录名

----express.Router
用来创建一个新的router对象,这个路由对象可以像一个子应用一样设置路由

const router = express.Router();
router.get('/',(req,res) => {
    res.send('blog');
})

app

app应用是express函数执行后得到的对象,核心就是app.use() 用于执行中间件;app.xxx等其他方法实际上都是app.use()的语法糖,即app.xxx等所有的功能都可以通过app.use()来实现

----app.all()

匹配所有路由,不区分请求方法

app.all("/user", (req, res, next) => {
  console.log("hello");
  next();
});

----app.get/post/put/delete

常见的路由请求方法

app.get("/user", (req, res, next) => {
  console.log('get方法');
  next();
});
app.post("/user", (req, res, next) => {
    console.log('post方法');
   res.send("app.get");
});

----app.set/get  app.locals

app.set(name, value) 用于设置局部变量

app.get(name) 用于获取app.set()设置的变量

app.locals 用于设置局部变量 但是通过app.locals设置的局部变量在任何地方都可以被访问到 例如:app.locals.title = 'Hello,Express'; cosnole.log(app.locals.title);

set内置应用:

'env' 设置环境模式  app.set('env', process.env.NODE_ENV)

'etag' 设置ETag响应头

'jsonp callback name' 设置默认的JSONP回调名称

'views' 设置应用程序试图的目录或目录数组

'view engine' 设置模板引擎

----app.engine

express默认使用jade模板,但是同时支持其他的模板;因此如果要想使用其他模板,需要设置模板殷勤,例如:app.set('view engine', 'ejs')

'view engine' 表示使用的文件模板格式,如果设置为ejs,那么会默认去views下查找ejs文件,也只查找ejs文件,即这样设置后所有的views下的模板文件后缀都必须是ejs

const ejs = require('ejs');
// 设置视图模板格式
app.set('view engine', 'html');
// 设置html引擎 将ejs模板映射到html
app.engine("html", ejs.__express);   // 使用ejs渲染html模板

app.engine()用于将模板映射成其他后缀文件

router

router可以看作是app的一个子应用,app对象所具有的功能基本上router对象也都可以使用

router对象只是为了更加方便路由的模块化管理

request.xxx 和 response.xxx

request是请求对象 response是响应对象

request和response的参数和方法大都和http相关

----req.baseUrl

指路由的挂载点

app.use('/user',user);  // 路由挂载点是/user
user.get('/add',(req,res) => {
    console.log(req.baseUrl);  // req.baseUrl就是 /user
    res.send('hello');
})

----req.originalUrl

用于获取完整的url路径地址

user.get('/add',(req,res) => {
    console.log(req.baseUrl);  // /user
    console.log(req.originalUrl); // /user/add
    res.send('hello');
})

----req.range

用于进行分片下载

var range = req.range(1000) 100个字节进行切片 一片一片地进行传输
// the type of the range
if (range.type === 'bytes') {
  // the ranges
  range.forEach(function (r) {
    // do something with r.start and r.end
  })
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值