首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

node上奔跑的express

express 简介

express是跑在node.js上的服务端web框架,它给我们提供很多便捷的api,供我们编程。它的安装很简单。

它的简单用法:

varexpress =require('express');

varapp = express();

app.get('/',function(req, res){

res.send('Hello World!');

});

app.listen(3000,function(){

console.log('Example app listening on port 3000!');

});

express 路由配置

通常情况下,我们前端请求接口,都是后端程序员提供,他们或许是php、java或其他程序语言。express给我们提供的路由可以使我们web程序员用js编写。

路由方法派生自 HTTP 方法之一,附加到 express 类的实例。

Express 支持对应于 HTTP 方法的以下路由方法:get、post、put、head、delete、options、trace、copy、lock、mkcol、move、purge、propfind、proppatch、unlock、report、mkactivity、checkout、merge、m-search、notify、subscribe、unsubscribe、patch、search 和 connect。

有一种特殊路由方法:app.all(),它并非派生自 HTTP 方法。该方法用于在所有请求方法的路径中装入中间件函数。

路由方法一般情况下接受两个参数,一个是请求路径字符串,第二个是路由处理的回调函数。

关于字符串路径,“/”代表根目录,我们可以通过正则表达式来匹配路径。

关于路由处理程序,我们可以单个回调函数可以处理一个路由;多个回调函数可以处理一个路由(确保您指定 next 对象);一组回调函数可以处理一个路由。

当然我们也可以用app.route()为路由路径创建可链接的路由处理程序。 因为在单一位置指定路径,所以可以减少冗余和输入错误。

我们可以用express.Router()类来创建可安装的模块化路由处理程序。

接着,在应用程序中装入路由器模块:

varbirds =require('./birds');

...

app.use('/birds', birds);

路由处理程序的响应方法

静态文件

为了提供诸如图像、CSS 文件和 JavaScript 文件之类的静态文件,请使用 Express 中的 express.static 内置中间件函数。

将包含静态资源的目录的名称传递给 express.static 中间件函数,以便开始直接提供这些文件。例如,使用以下代码在名为 public 的目录中提供图像、CSS 文件和 JavaScript 文件:

当然我们也可以为静态资源路径设置别名,第一个参数传入字符串:

app.use('/static', express.static(__dirname +'/public'));

API

app.use():在指定路径执行中间件函数,一般情况下第一个参数是一个路径path,第二个参数是一个回调函数callback。路径我们可以用正则匹配,也可以维护成一个数组,用来匹配路径。回调函数中一般情况下是三个参数,req、res、next,错误处理中间件有四个参数,前面加一个err。

app.set():设置程序的name值,比如设置端口port,设置模版引擎ejs。

app.engine():用指定的模版引擎解析文件,第一个参数为文件扩展名,第二个为引擎提供的方法。

app.get(名称):返回set 设置的值,与app.set()相对应。

app.render():app.render(view, [options], callback) 渲染 view, callback 用来处理返回的渲染后的字符串。可以将其app.render()视为生成渲染视图字符串的实用程序函数。内部res.render()用于app.render()渲染视图。

版本更新

可express目前的稳定版本是4.X。5.0版本正在测试中,在5中废弃了许多api,也更改了许多。

1、在 Express 4 中已移除的 app.router 对象在 Express 5 中已恢复。在新版本中,此对象只是对 Express 基本路由器的引用,不像在 Express 3 中应用程序必须显式将该路由器装入。

2、在 Express 4 中,如果存在端口号,req.host 函数会错误地将其剥离。在 Express 5 中,则会保留端口号。

3、req.query,在 Express 4.7 以及 Express 5 之后,如果您希望使用自己的查询字符串解析逻辑函数,查询解析器选项可以接受 false 以禁用查询字符串解析。

4、现在,此方法为所有查看引擎强制执行异步行为,避免具有同步实现以及违反建议接口的查看引擎所导致的错误。

5、在 Express 5 中,res.sendfile() 函数已由驼峰式大小写版本 res.sendFile() 替换。

6、Express 5 不再支持 app.del() 函数。Express 5 不再支持特征符 res.send(status),而是使用res.sendStatus(statusCode) 函数。

7、Express 5 不再支持特征符 res.json(obj, status)、res.jsonp(obj, status)、res.send(obj, status)。而是设置状态,然后将其链接到 res.json() 方法,如下所示:res.status(status).json(obj)、res.status(status).jsonp(obj)、res.status(status).send(obj)。

req.param(name),已移除用于检索表单数据的方法,因为这可能引起混淆,而且很危险。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180709G1KT9D00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券