如果正在搜索值,我如何 return 数组中的 json 对象
How can I return a json object in an array if the value is being searched for
这是我第一次尝试将 HTTPS 请求实现到代码中,所以我不是 100% 有信心使用它。所以我的目标是在我的数组中搜索一个术语,其中包含 JSON 个对象和 return 与该值相关的所有内容。这是我的代码:
const campgrounds = [{
name: "Three Rivers Petroglyph Site",
town: "Lincoln, NM",
lengthLimit: 25,
elevation: 4986,
numberOfSites: 7,
padType: "gravel"
},
{
name: "Baca Campground",
town: "Lincoln, NM",
lengthLimit: 32,
elevation: 6397,
numberOfSites: 7,
padType: "dirt"
},
{
name: "South Fork Campground",
town: "Nogal, NM",
lengthLimit: 19,
elevation: 7513,
numberOfSites: 60,
padType: "unknown"
}
]
app.get('/search', (req, res) => {
let searchTerm = req.query.q;
console.log(`Search for ${searchTerm}`);
for (const campground of campgrounds) {
if (campground == campgrounds.name) {
res.json({
campgrounds: campground
});
}
}
});
避免在循环内调用 res.json
。而是生成结果(数组),然后在末尾调用 res.json
- 在循环之外。
像这样
...
app.get('/search', (req, res) => {
let searchTerm = req.query.q;
console.log(`Search for ${searchTerm}`);
const results = []
for (const campground of campgrounds) {
if (campground.name == searchTerm) {
results.push(campground);
}
}
res.json({
campgrounds: results
})
});
我想通了这个对我有用的东西,运行 通过 Postman 它通过了我的测试
app.get('/search', (req, res) => {
let searchTerm = req.query.q;
console.log(`Search for ${searchTerm}`);
// TODO
for (const campground of campgrounds) {
if (campground.name == searchTerm){
res.json(campground);
}
}
});
这是我通过 Postman 运行 进行的测试:
pm.test("name check", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.name).to.eql('Three Rivers Campground');
});
pm.test("length check", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.lengthLimit).to.eql(25);
});
pm.test("elevation check", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.elevation).to.eql(6332);
});
这是我第一次尝试将 HTTPS 请求实现到代码中,所以我不是 100% 有信心使用它。所以我的目标是在我的数组中搜索一个术语,其中包含 JSON 个对象和 return 与该值相关的所有内容。这是我的代码:
const campgrounds = [{
name: "Three Rivers Petroglyph Site",
town: "Lincoln, NM",
lengthLimit: 25,
elevation: 4986,
numberOfSites: 7,
padType: "gravel"
},
{
name: "Baca Campground",
town: "Lincoln, NM",
lengthLimit: 32,
elevation: 6397,
numberOfSites: 7,
padType: "dirt"
},
{
name: "South Fork Campground",
town: "Nogal, NM",
lengthLimit: 19,
elevation: 7513,
numberOfSites: 60,
padType: "unknown"
}
]
app.get('/search', (req, res) => {
let searchTerm = req.query.q;
console.log(`Search for ${searchTerm}`);
for (const campground of campgrounds) {
if (campground == campgrounds.name) {
res.json({
campgrounds: campground
});
}
}
});
避免在循环内调用 res.json
。而是生成结果(数组),然后在末尾调用 res.json
- 在循环之外。
像这样
...
app.get('/search', (req, res) => {
let searchTerm = req.query.q;
console.log(`Search for ${searchTerm}`);
const results = []
for (const campground of campgrounds) {
if (campground.name == searchTerm) {
results.push(campground);
}
}
res.json({
campgrounds: results
})
});
我想通了这个对我有用的东西,运行 通过 Postman 它通过了我的测试
app.get('/search', (req, res) => {
let searchTerm = req.query.q;
console.log(`Search for ${searchTerm}`);
// TODO
for (const campground of campgrounds) {
if (campground.name == searchTerm){
res.json(campground);
}
}
});
这是我通过 Postman 运行 进行的测试:
pm.test("name check", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.name).to.eql('Three Rivers Campground');
});
pm.test("length check", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.lengthLimit).to.eql(25);
});
pm.test("elevation check", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.elevation).to.eql(6332);
});