Javascript 如何返回对象而不是数组?

Javascript 如何返回对象而不是数组?,javascript,mysql,node.js,express,Javascript,Mysql,Node.js,Express,我试图返回一个JSON对象,但它返回了一个数组。我使用主键进行查询,所以我确信我只会得到一个结果 这是我的方法: router.get(“/student\u info/:id)”,(请求、回复、下一步)=>{ connection.getConnection((错误,currentConnection)=>{ 如果(!!错误){ console.log(“连接数据库时出错”) }否则{ 设id=req.params.id; currentConnection.query(“从学生中选择*,其中

我试图返回一个JSON对象,但它返回了一个数组。我使用主键进行查询,所以我确信我只会得到一个结果

这是我的方法:

router.get(“/student\u info/:id)”,(请求、回复、下一步)=>{
connection.getConnection((错误,currentConnection)=>{
如果(!!错误){
console.log(“连接数据库时出错”)
}否则{
设id=req.params.id;
currentConnection.query(“从学生中选择*,其中id=“+””“+id+””,(错误、行、字段)=>{
如果(!!错误){
console.log(错误消息)
}否则{
res.status(200).json(行);
}
currentConnection.release();
});
}
});
});
我想要的是:

    {
        "id": "171-15-8966",
        "name": "Alif Hasnain",
        "course_code": "CSE412,CSE413"
    }
但我得到的结果是这样的:

[
    {
        "id": "171-15-8966",
        "name": "Alif Hasnain",
        "course_code": "CSE412,CSE413"
    }
]

只需在json转换之前获取数组的第一个元素:

res.status(200).json(rows[0]);

只需在json转换之前获取数组的第一个元素:

res.status(200).json(rows[0]);

默认情况下,查询返回select查询所反映的行数组。因为您的查询只有一个结果,所以它将作为单个对象的数组返回给用户

你可以把它改成

res.status(200).json(rows[0]);

请告诉我们是否有更好的备选方案。

默认情况下,查询返回select查询所反映的行数组。因为您的查询只有一个结果,所以它将作为单个对象的数组返回给用户

你可以把它改成

res.status(200).json(rows[0]);
如果有更好的替代品,请告诉我们