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

news/2024/11/5 14:16:41 标签: json, 前端, javascript

文章涉及到的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);
    }
})

http://www.niftyadmin.cn/n/1574789.html

相关文章

我的报表引擎

技术平台:.net 作品介绍:一个基于微软rdlc的报表引擎,打单是国内中小企必须的日常事务,加上中国式报表的多样性、复杂性,一个良好的报表引擎是每个管理软件都必须的。 交流合作:欢迎技术合作,技…

第21件事 资源支持离不开RACI表

十步法的第九步寻求资源支持。资源主要包括人力资源、物力资源和财力资源。人力资源,即需要多少人;物力资源,即需要多少软硬件设备;财力资源,即需要多少预算。根据产品或项目目标,资源估算时要考虑需要什么…

DataTable还是IList

二进制序列化的情况 在远程系统中&#xff0c;经常需要传输集合类型的数据结构&#xff0c;DataTable和IList<T>是比较常用的2种集合类型&#xff0c;下面对这2种数据类型的二进制序列化作一个测试 定义一个测试的类 using System; using System.Collections.Generic…

我的进销存(商贸版)

技术平台&#xff1a;.net 作品介绍&#xff1a;基于remoting技术构建&#xff0c;C/S结构的进销存系统&#xff0c;有进货管理&#xff0c;销售管理&#xff0c;库存管理&#xff0c;财务管理4大模块&#xff0c;能满足中小企使用需要。 主界面 单据 查询 报表 服务器 主要功…

【C#】wpf添加gif动图支持

原文:【C#】wpf添加gif动图支持1.nuget里下载XamlAnimatedGif包&#xff0c;然后安装。 2.添加XamlAnimatedGif包的命名空间&#xff1a;xmlns:gif"https://github.com/XamlAnimatedGif/XamlAnimatedGif" 3.开始使用&#xff1a; <Image gif:AnimationBehavior.So…

餐饮类排队市场“戏路狭小”,美味不用等终难成大气候?

近期&#xff0c;美味不用等获得来自口碑、携程领投的4亿元D1轮融资。此次融资之后&#xff0c;其在市场上的估计达到了40亿人民币。纵观美味不用等的融资历史可以发现&#xff0c;其投资方集结了各路行业巨头&#xff0c;如经纬中国、阿里、腾讯、携程、美团点评等。如此强大的…

我的进销存(工贸版)

技术平台&#xff1a;.net 作品介绍&#xff1a;基于remoting技术构建&#xff0c;C/S结构的进销存系统&#xff0c;有进货管理&#xff0c;销售管理&#xff0c;库存管理&#xff0c;财务管理&#xff0c;生产管理5大模块&#xff0c;能满足中小企使用需要。 主界面 单据 查…

mui 总结

出框框 js内容 mui(".mui-popover").popover(toggle); 点击“弹出框框”就会弹出这个有class"mui-popover"的窗口&#xff0c;点除了窗口的其他位置就隐藏,注意这个窗口一定要写在header之外 此外&#xff0c;mui&#xff08;".classname&qu…