express 常用 API

256 阅读2分钟

最近学了一下 node 框架 express,所以写篇文章总结一下 express 中常用的 API

express 相关 API

express.json(): 用于解析 JSON 格式的数据

express.static(): 用于开启一个静态服务器

express.unlencoded(): 用于解析类似于 name=jack&gender=male 这种格式的数据

app 相关 API

app.set(name, value): 用于设置任意的值,设置之后你可以在后续的 app.get() 根据 name 去获取

app.set('title', 'test')
app.get('title')    // "test"

还可以设置一些特殊的变量,例如 'case senstive routing' 来决定目录是否大小写敏感,'views' 用来设置默认拿视图的目录等,具体可以看下官方文档(expressjs.com/en/4x/api.h…)

app.get(name): 用于获取 app.set(name, value) 中设置的值

app.get('test')     // undefined
app.set('test', 1)
app.get('test')     // 1

app.get(path, callback): 使用指定的回调函数将 HTTP GET 请求路由到指定路径(app.post, app.put 等有类似的用法)

app.get('/', function (req, res) {
  res.send('GET request to homepage')
})

app.use([path,] callback [, callback...]): 对匹配的路径执行对应的 callback 函数,当 path 为空时默认为 /;需要继续执行下一个中间件的话最后面需要跟上 next()

app.use('/test', (req, res, next) => {
    res.wirte('this is test');
    next();
})

request 相关 API

req.param(name [, defaultValue]): 当 name 存在的时候返回 name 的值

// 请求的路径中带查询参数 ?test=query
req.param('test')    // query

// POST test=post
req.param('test')    // test

req.query(): 用于获取后面的查询参数

/test?name=cz&age=18
console.log(req.query)    //{ name: 'cz', age: '18' }

req.range(): 用于分片并发下载资源

response 相关 API

res.send(body): 用于发送 HTTP 响应

res.send('text')        // text
res.send({name: 'hi'})  // {"name":"hi"}
res.send('<p>hello</p>')// hello

res.set(name [, value]): 用来设置响应头的内容

res.set('Content-Type', 'text/plain')

res.set({
  'Content-Type': 'text/plain',
  'Content-Length': '123',
  ETag: '12345'
})

res.status(code): 用来设置响应头的状态码

res.status(200)

res.location(path): 用于将响应LocationHTTP 标头设置为指定的path参数,可用于重定向

// 访问 test 路径时会自动重定向到 /foo/bar
app.get('/test', (req, res, next) => {
    res.status(301)
    res.location('/foo/bar')
    res.send('<p>hello</p>')
})

router 相关的 API

因为 router 的 API 都可以通过 app 实现,所以就直接使用 app 吧~