资讯专栏INFORMATION COLUMN

#初识Express# Express 框架处理前端请求(/:id)

tracy / 766人阅读

摘要:讲解配置客户端路由请求地址。将改成也是可以的,只是请求类型会变成。一个对象,其包含了一系列的属性,这些属性和在路由中命名的参数名是一一对应的。有四个参数,分别是,做请求处理,做响应处理,执行正确参数时的函数操作,是被监听参数的值。

文章涉及到的API:req.paramsres.json()app.get(),app.post(),app.param()

API讲解

1. app.get()app.post()

配置客户端路由(请求地址)。

app.post("/get_json/:id", function (req, res) {
  // 响应块代码
})

这里配置了一个POST请求的地址。将app.post()改成app.get()也是可以的,只是请求类型会变成get

2. req.params

一个对象,其包含了一系列的属性,这些属性和在路由中命名的参数名是一一对应的。例如,如果你有/user/:name路由,name属性可通过req.params.name的方式获取到,这个对象默认值为{}。

3. res.json()

发送一个json的响应。这个方法和将一个对象或者一个数组作为参数传递给res.send()方法的效果相同。不过,你可以使用这个方法来转换其他的值到json,例如nullundefined。(虽然这些都是技术上无效的JSON)。

4. app.param()

这个API有两个参数,(name, callback),name是被监听参数的字段名, callback则是对监听结果的回调函数。callback有四个参数,分别是 requestresponsenextnamerequest做请求处理,response做响应处理,next执行正确参数时的函数操作,name是被监听参数的值。

app.param("id", function(req, res, next, id) {
    if (id == 3) {
        next() // 参数正确调用next函数
    } else { // 监听参数不存在或者错误,给出错误响应
        console.log("Erro !!!");
        res.send("Erro !!!!");
    }
})
示例代码

服务端代码

var express = require("express");
var bodyParser = require("body-parser");
var app = express();
// 解析json格式的数据
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));

// POST请求 返回JSON串数据
app.post("/get_json/:id", function (req, res) {
   console.log("接收到 POST 请求");
   var json = {
           "message": "欢迎访问",
           "data": { "a": 1, "b": 2, "c": 4, "d": 3, "e": 5 }
   }
   res.json(json);
})
// 处理不同参数的请求
app.param("id", function(req, res, next, id) {
    if (id == 3) {
        next() // 执行正常操作,返回JSON数据
    } else {
        console.log("Erro !!!");
        console.log(req.params);
        res.send("Erro !!!!");
    }
})

客户端请求

ajax({
    url: "/get_json/1",  // 传 3 的时候,后台才会返回JSON数据
    type: "POST",
    data: data,
    success: function(data){
        // console.log( JSON.parse(data) );
           console.log(data);
    }
})

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

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

相关文章

  • 30分钟用Node.js构建一个API服务器

    摘要:你的服务器已经启动了。为此,我们将使用名为的优秀应用。项目结构大多数教程以及许多真实的案例都将所有路由放在一个很大的文件中。不仅要求为字符串,还要求是一个对象,它们被之为。 翻译:疯狂的技术宅原文:https://medium.freecodecamp.o... 本文首发微信公众号:前端先锋欢迎关注,每天都给你推送新鲜的前端技术文章 Node.js 对初学者来说可能是令人望而却步...

    AlienZHOU 评论0 收藏0
  • CQRS框架(nodejs的DDD开发落地框架初识感想

    摘要:中的事件的一个,我暂且理解为一个中的和这两个属性已经在框架中直接挂载在了对象上,归功于曾老师。 CQRS是啥?DDD又是啥? 这两个概念其实没什么神秘的,当然此文章中的这两个概念以曾老师的课程为准(关于CQRS和DDD的标准概念,google上已经很多了,不再赘述。) DDD(Domain Driven Design),领域驱动设计开发。 DDD和OOP有什么同吗?其实就我个人经验来说...

    zhoutk 评论0 收藏0
  • express web的一款mvc框架

    摘要:相关的网站开发有这么常用的四款数据层视图层控制层框架,我们今天说一下阿里的框架是一个自身功能极简,完全是由路由和中间件构成一个的开发框架安装创建一个目录通过命令为你的应用创建一个文件。修改请求和响应对象。注意只对使用或加载的中间件有效。 express express相关的网站*http://expressjs.com/*http://www.expressjs.com.cn/*htt...

    _ang 评论0 收藏0
  • Express 实战(一):概览

    摘要:一个标准性的事件就是年的横空出世。引擎快速处理能力和异步编程风格,让开发者从多线程中解脱了出来。其次,通过异步编程范式将其高并发的能力发挥的淋漓尽致。它也仅仅是一个处理请求并作出响应的函数,并无任何特殊之处。 showImg(https://segmentfault.com/img/remote/1460000010819116); 在正式学习 Express 内容之前,我们有必要从大...

    zhaochunqi 评论0 收藏0

发表评论

0条评论

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