Node.js中如何向Express API接口处理函数传递IATA变量参数
修改步骤
1. 调整api.js的路由定义
你需要在路由中添加IATA参数占位符,Express 会自动把匹配的路径参数挂载到 req.params 对象上,修改后代码如下:
import express from 'express'; const app = express(); import { getWhereToApi} from './lib/handlers.js'; const port = 3000; // 新增参数占位符:iata,用来接收传入的IATA编码 app.get('/api/vacations/:iata', getWhereToApi); app.listen(port, function() { console.log(`Express started in ${app.get('env')} ` + `mode on http://127.0.0.1:${port}` + `; press Ctrl-C to terminate.`)});
2. 修改handlers.js的处理函数
Express 的路由处理函数默认只有三个参数 req、res、next,你需要从req.params里取到刚才定义的iata参数,同时可以增加简单的不存在判断,避免返回空值,修改后代码如下:
var whereTo = { "GRU": { "destinations": ["MAD", "LAX", "MEX"], }, "LAX": { "destinations": ["NYC", "GRU", "MEX"], }, "NYC": { "destinations": ["LAX"], }, } export async function getWhereToApi(req, res){ // 从路径参数中获取IATA编码 const iata = req.params.iata // 先判断是否存在对应IATA的数据,不存在返回404提示 if (!whereTo[iata]) { return res.status(404).json({error: '未找到对应IATA编码的目的地信息'}) } res.json(whereTo[iata]); }
测试方法
服务启动后,直接在浏览器或者接口请求工具中访问 http://127.0.0.1:3000/api/vacations/GRU,就能拿到你期望的返回结果。如果要查询其他编码,把URL末尾的GRU换成对应的LAX、NYC即可。
内容的提问来源于stack exchange,提问作者Kaguei Nakueka
相关产品推荐
相关产品推荐

