【问题标题】:ObjectId converting to strings in api, nodejs to reactjsObjectId在api中转换为字符串,nodejs到reactjs
【发布时间】:2019-02-26 12:20:33
【问题描述】:

我有一个简单的 API,可以在响应中发送数据

Food.aggregate([{
    $match: {
        res_id: restaurant._id
    }
}, {
    $group: {
        _id: "$category",
        foods: {
            $push: "$$ROOT"
        }
    }
}], function(err, foods) {

    if (err)
        res.json({
            error: "error"
        });
    else
        res.json(foods);

});

但是,当我在我的 React 应用程序中使用 axios 读取数据时,objectIds 在我的前端 React 应用程序中被转换为字符串。

现在我找不到任何关于可以通过 HTTP 或任何其他限制传递的数据类型的资源。谁能指出我的任何资源或告诉我这是否是 HTTP 的工作方式。

【问题讨论】:

    标签: node.js reactjs api http axios


    【解决方案1】:

    JSON.stringify() 将递归调用 toJSON() 方法来获取对象的 JSON 安全字符串表示,您需要在 javascript 序列化期间通过 HTTP 从服务器传递到前端应用程序。

    ObjectID 将在序列化过程中转换为 24 字节十六进制字符串ObjectID.prototype.toJSON

    【讨论】:

    • 这是否意味着 objectID 将始终作为字符串在我的前端接收!?
    • @TanmoyBasak 是的
    猜你喜欢
    • 2020-05-28
    • 2011-12-11
    • 2018-11-09
    • 2017-03-11
    • 1970-01-01
    • 1970-01-01
    • 2014-12-08
    • 1970-01-01
    • 2016-09-25
    相关资源
    最近更新 更多