文章涉及到的API:req.params,res.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,例如null,undefined。(虽然这些都是技术上无效的JSON)。
4. app.param()
这个API有两个参数,(name, callback),name是被监听参数的字段名, callback则是对监听结果的回调函数。callback有四个参数,分别是 request、response、next、name,request做请求处理,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);
}
})
600

被折叠的 条评论
为什么被折叠?



