问题描述
我按照这个小方法在 nodejs 中应用了一个简单的 api。这不是我的专长领域,我是一名计算机网络分析师,虽然我用 C++(简单)和 C# 开发应用程序,但我对如何获得由以下代码:
//
exports.findAll = (req,res) => {
const name = req.query.name;
var condition = name ? { name: { [Op.like]: `%${name}%` } } : null;
Custumers.findAll({ where: condition })
.then(data => {
res.send(data);;
})
.catch(err => {
res.status(500).send({
message:
err.message || "Some error occurred while retrieving name."
});
});
};
访问 URL 以检查一切是否按预期进行。
http://10.1.1.254:8085/api/custumers?name=Gabriel
我的结果:
[
{"id":6,"name":"Gabriel","cod":10,"igCustumer":"1","createdAt":null,"updatedAt":null}
]
如何获取name、cod、imgCustomer的值?
我试试;
axios.get(`http://10.1.1.254:8085/api/custumers?name=Gabriel`).then((res) => {
let myvar = `My result:\n\n${res.data.name}`;
console.log(myvar);
})
结果如果:未定义
解决方法
您可以像这样在 JavaScript 中访问对象值...
let res = [{"id":6,"name":"Gabriel","cod":10,"igCustumer":"1","createdAt":null,"updatedAt":null}]
let name = res[0].name;
let cod = res[0].cod;
let igCustomer = res[0].igCustumer;
因为 res
是一个充满对象的数组,所以您可以通过它在索引中的位置来访问一个对象,例如 res[0]
。从那里您可以使用点符号或括号选择对象中的键/值对。每种方法都有其用途。
尝试这样的事情:
let res = [
{"id":6,"updatedAt":null}
]
console.log(res[0]['name']);
console.log(res[0]['cod']);
console.log(res[0]['igCustumer']);
,
您尝试访问不存在的字段的代码问题。 res.data
将等于端点的响应。您的响应是一个数组,因此显然它没有 name
字段。所以你需要拿一个特定的对象。
const user = res.data[0]; // Taking the first user.
然后你就可以访问它的数据了。
user.name; // Gabriel
,
要从数组中查找数据,您可以迭代该数组并像这样使用 find :
let res = [
{id:6,name:"Gabriel",cod:10,igCustumer:"1",createdAt:null,updatedAt:null}
]
let myVar = res.find((item) => {
return item.name === 'Gabriel'
});
console.log(myVar.name);
console.log(myVar.cod);
console.log(myVar.igCustumer);