资讯专栏INFORMATION COLUMN

Node.js学习之路27——Express的router对象

NicolasHe / 646人阅读

摘要:对象大小写敏感默认不敏感保留父路由器的必需参数值如果父项和子项具有冲突的参数名称则该子项的值将优先激活严格路由默认禁用禁用之后正常访问但是不可以访问全部调用或者或者实际上就是的各种请求方法使用路由使用模块方法

Router([options])
let router = express.Router([options]);

options对象

caseSensitive,大小写敏感,默认不敏感

mergeParams,保留父路由器的必需参数值,如果父项和子项具有冲突的参数名称,则该子项的值将优先

strict,激活严格路由,默认禁用,禁用之后/uu正常访问,但是/uu/不可以访问

1. router.all

全部调用

router.all(path, [callback, ...] callback)

router.all("*", fn1, fn2...);
// 或者
router.all("*", fn1);
router.all("*", fn2);
// 或者
router.all("/user", fn3);
2. router.METHOD

router.METHOD(path, [callback, ...] callback)

实际上就是ajax的各种请求方法

router.get("/", (req, res, next) => {
    
})

router.post("/", (req, res, next) => {
    
})
3. router.route(path)
var router = express.Router();

router.param("user_id", function(req, res, next, id) {
  // sample user, would actually fetch from DB, etc...
  req.user = {
    id: id,
    name: "TJ"
  };
  next();
});

router.route("/users/:user_id")
.all(function(req, res, next) {
  // runs for all HTTP verbs first
  // think of it as route specific middleware!
  next();
})
.get(function(req, res, next) {
  res.json(req.user);
})
.put(function(req, res, next) {
  // just an example of maybe updating the user
  req.user.name = req.params.name;
  // save user ... etc
  res.json(req.user);
})
.post(function(req, res, next) {
  next(new Error("not implemented"));
})
.delete(function(req, res, next) {
  next(new Error("not implemented"));
})
4. router.use 4.1 使用路由
var express = require("express");
var app = express();
var router = express.Router();

// simple logger for this router"s requests
// all requests to this router will first hit this middleware
router.use(function(req, res, next) {
  console.log("%s %s %s", req.method, req.url, req.path);
  next();
});

// this will only be invoked if the path starts with /bar from the mount point
router.use("/bar", function(req, res, next) {
  // ... maybe some additional /bar logging ...
  next();
});

// always invoked
router.use(function(req, res, next) {
  res.send("Hello World");
});

app.use("/foo", router);

app.listen(3000);
4.2 使用模块方法
var logger = require("morgan");

router.use(logger());
router.use(express.static(__dirname + "/public"));
router.use(function(req, res){
  res.send("Hello");
});

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/93072.html

相关文章

  • Node.js学习之路23——Node.js利用mongoose连接mongodb数据库

    摘要:类比一下你有一个巨型停车场,里边分了不同的停车区集合,这里的,每个停车区可以停很多车下文提到的,相当于每个数据集合里边可以有很多张数据表。 Node.js利用mongoose连接mongodb数据库 Node.js连接mongodb数据库有很多种方法,通过mongoose模块引入是其中的一个方法 代码组织结构 |---|根目录 |---|---|connect.js(mongoose测...

    ssshooter 评论0 收藏0
  • Node.js学习之路23——Node.js利用mongoose连接mongodb数据库

    摘要:类比一下你有一个巨型停车场,里边分了不同的停车区集合,这里的,每个停车区可以停很多车下文提到的,相当于每个数据集合里边可以有很多张数据表。 Node.js利用mongoose连接mongodb数据库 Node.js连接mongodb数据库有很多种方法,通过mongoose模块引入是其中的一个方法 代码组织结构 |---|根目录 |---|---|connect.js(mongoose测...

    jsummer 评论0 收藏0
  • Node.js学习之路25——Expressrequest对象

    摘要:对象表示请求并且具有请求查询字符串参数正文标题头等属性对应用程序实例的引用保存了很多对使用中间件的应用程序实例的引用挂载在路由实例上的路径请求主体和和包含在请求正文中提交的数据的键值对默认情况下它是未定义的当您使用体解析中间件如和时将被填 2. request req对象表示http请求,并且具有请求查询字符串,参数,正文,http标题头等属性 app.get(/user/:id, ...

    cocopeak 评论0 收藏0
  • Node.js学习之路26——Expressresponse对象

    摘要:如果包含字符则将设置为。添加字段到不同的响应头将该字段添加到不同的响应标头如果它尚未存在。 3. response对象 3.1 是否发送了响应头 res.headersSent布尔属性,app是否发送了httpheaders const express = require(express); const bodyParser = require(body-parser); cons...

    davidac 评论0 收藏0
  • 60分钟学会使用Node.js+Express+Ejs+mongoDB

    摘要:安装完毕后,打开终端,在终端分别输入如下命令,检测是否安装成功。号会告诉安装最新版本。它会为每一条记录创建一个唯一的值。注意我们不需要提前创建这个,它会在第一次使用的时候自动创建。我们可以使用,这是我最常用的方式。 60分钟学会使用Node.js+Express+Ejs+mongoDB 本文出自从零到壹全栈部落 (Node+Vue+微信公众号开发)企业级产品全栈开发速成周末班首期班(1...

    BicycleWarrior 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<