使用Express

时间:2018-09-17 20:27:28

标签: json node.js express

因此,假设我有一个庞大的JSON文件,其总体结构大致如下:

{
   "apples": { complex object },
   "oranges": { complex object },
   "grapes": { complex object }
}

在使用express时,是否有某种方法专门针对要返回的对象?举例来说,如果有人向我的服务器发出简单的get请求,它将专门返回给定的对象。我知道语法和概念在这种情况下是完全错误的,但是由于缺少更好的表达方式,例如...

let testData = 'testdata.json';
app.get('/thing', res => {
   res.json(testData.oranges);
}

我知道您可以返回整个文件,但是在这种情况下,这会增加大量的加载时间,在这种情况下是不切实际的。

或者,或者-最好让节点解析JSON文件并将其拆分为apples.json,oranges.json等文件以供使用?试图理解A(执行此类操作的最佳实践)和B(将其转化为中型项目的实际应用的最有效方法)。

对此的任何想法或建议-即使是图书馆的建议-也将不胜感激。

2 个答案:

答案 0 :(得分:0)

如果发出POST请求时要照顾特定的'事物'的有效载荷,然后基于该事物返回一个对象,则它应该可以工作。示例:

let testData = {
   "apples": { complex object },
   "oranges": { complex object },
   "grapes": { complex object }
};
app.post('/route', (req, res) => {
   thing = req.body.thing;
   res.json(testData[thing]);
}

答案 1 :(得分:0)

这是对某些数据的GET请求,主要是因为JSON文件可以用作键/值存储来查询所需的响应数据。

假设用于指定要返回的对象的键的查询参数为part,那么以下示例将起作用:

const testData = require('./testdata.json');

app.get('/thing', (req, res) => res.json(testdata[req.query.part]);

查询/thing?part=apples将在响应中返回testdata.apples