【问题标题】:How to return an object instead of an array? (mysql with node,js)如何返回对象而不是数组? (带有节点的mysql,js)
【发布时间】:2023-03-20 03:27:01
【问题描述】:

嘿,这么快,这么短,我今天才开始使用 mysql,我掌握了创建一个表,在该表中插入行,查询行,更新和删除等。但是如果我返回一个对象,我不知道如何返回一个对象单个对象。

例如:

我想返回这样的对象

{title: 'object1', body: '这是1号对象'}

而是返回

[{ title: 'object1', body: '这是1号对象}]

我习惯用 mongodb 和 mongoose 和什么时候使用

collection.findOne 如果我使用collection.find,我得到一个对象,我得到一个数组

那么我必须总是返回一个数组而不是 mysql 的对象吗?我听说过 WITHOUT_ARRAY_WRAPPER 我试过这样使用它

 let query = `SELECT * FROM posts WHERE id=1, WITHOUT_ARRAY_WRAPPER`;

 connection.query(query, (err, results, feilds) => {
     if(err) throw err;
     //etc...
 });

但我收到一个语法错误,指出“ER_PARSE_ERROR:您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以了解在第 1 行的 'WITHOUT_ARRAY_WRAPPER' 附近使用的正确语法”

如果有人能帮助阐明这一点,将不胜感激。

【问题讨论】:

    标签: javascript mysql node.js database


    【解决方案1】:

    如果您知道返回的响应将始终是单个对象,那么返回数组的第一个索引很容易。代替return response,我们可以使用return response[0],对吧??

    【讨论】:

    • 是的,我只是想知道是否有办法返回一个普通的对象。如果没有适合我的方法
    • MySQL 和 MSSQL 都使用 SQL,但语法略有不同。也许,您正尝试在 MySQL 中使用 WITHOUT_ARRAY_WRAPPER,这实际上是 MSSQL 中的一种语法。与 mongoDB 不同,在 MySQL 中,我们没有像 find()findOne() 这样分别返回对象和数组的函数。我们只有SELECT,它单独可以返回单个或多个对象,因此默认返回一个数组。
    • 是的,那是我的问题,我把两者混为一谈,认为它们是相同的。谢谢你的评论真的解决了问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-01
    • 2020-06-29
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 2019-01-17
    • 1970-01-01
    相关资源
    最近更新 更多