我正在构建一个简单的基于 Express 的 API 来提供 JSON 数据文件。它工作正常,但我想添加功能。 JSON文件格式如下:(部分省略)
[{
"ID": "1",
"NAME": "George Washington",
"PAGE": "http://en.wikipedia.org/wiki/George_Washington",
"DATE1": "30/04/1789",
"DATE2": "4/03/1797",
"PARTY": "Independent ",
"IMG": "GeorgeWashington.jpg",
"THUMB": "thmb_GeorgeWashington.jpg",
"HOMESTATE": "Virginia"
}
这是我的 index.js 中用于快速路由的片段:
var express = require('express');
var app = express();
app.set('port', process.env.PORT || 3000);
var myData = require('./data.json');
app.get('/api', function(req, res){
res.json(myData);
});
app.get('/api/:id', function(req, res){
res.json(myData[req.params.id]);
});
正如我所希望的那样,对 /api 的调用给出了整个数据集,而对 /api/1 的调用只给出了第一个条目。我想做的是添加第三条(或更多路线),允许用户深入到 JSON 中的特定项目。例如调用
https//<blah>/api/1/HOMESTATE
会产生
"HOMESTATE": "Virginia"
我可以使用参数来执行此操作,还是需要根据输入的 ID 迭代 JSON?任何指向代码示例的指针将不胜感激。
最佳答案
仅使用路由参数即可轻松完成。
app.get('/api/:id/:property', function(req, res){
var response = {};
response[req.params.property] = myData[req.params.id][req.params.property]
res.json(response);
});
您需要添加一些错误处理以使事情更加健壮,否则如果路由参数无效,您的应用程序将崩溃。
关于javascript - 如何正确路由到 Express 中的 JSON 条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31390654/