Не удается преобразовать ObjectId в строку в javascript - PullRequest
0 голосов
/ 19 января 2020

Здравствуйте, возникли проблемы с преобразованием objectID в строку в реакции после получения моего API ... Я не могу получить это, например, "ObjectId (5e23828631c3f20fd40d3feb)". Мне просто нужен этот "5e23828631c3f20fd40d3feb", вот мой код:

`

import React, { Component } from 'react'
import jwt_decode from 'jwt-decode'
import ObjectID from 'bson-objectid'

class Profile extends Component {
    constructor() {
        super()
        this.state = {
            full_name: '',
            username: '',
            email: '',
            pubCount: '',
            abmnCount: '',
            abneCount: '',
            errors: {}
        }
        this.loadProfile = this.loadProfile.bind(this)
    }

    loadProfile(){

        const token = localStorage.usertoken
        fetch('http://localhost:9000/kotgram/user/mesinfos', {
            method: 'get',
            headers: new Headers({
                'Authorization': token,
                'Content-Type': 'application/json'
            })
        }).then(res => res.json())
            .then(data => {
                console.log(data._id.toString()) /*this shows [object][object] when I try to convert it to a string. I tried to import bson-objectid but it doesnt work*/
                console.log(data.email)
                this.setState({
                    full_name: data.full_name,
                    username: data.username,
                    email: data.email,
                    pubCount: data.pubCount,
                    abmnCount: data.abmnCount,
                    abneCount: data.abneCount
                })                
            })
            .catch(error => console.log('ERROR'));
    }

    componentDidMount() {
        this.loadProfile()


    }

    render() {
        return (
            <div className="container">
                <div className="jumbotron mt-5">
                    <div className="col-sm-8 mx-auto">
                        <h1 className="text-center">PROFILE</h1>
                    </div>
                    <table className="table col-md-6 mx-auto">
                        <tbody>
                        <tr>
                            <td>Nom complet</td>
                            <td>{this.state.full_name}</td>
                        </tr>
                        <tr>
                            <td>Username</td>
                            <td>{this.state.username}</td>
                        </tr>
                        <tr>
                            <td>Email</td>
                            <td>{this.state.email}</td>
                        </tr>
                        <tr>
                            <td>Publications</td>
                            <td>{this.state.pubCount}</td>
                        </tr>
                        <tr>
                            <td>Abe</td>
                            <td>{this.state.abneCount}</td>
                        </tr>
                        <tr>
                            <td>Abn</td>
                            <td>{this.state.abmnCount}</td>
                        </tr>
                        </tbody>
                    </table>
                </div>
            </div>
        )
    }
}

export default Profile

` Я использую Kotlin для моего внутреннего сервера и MongoDB для хранения своих коллекций .. Пожалуйста, помогите ..

1 Ответ

0 голосов
/ 19 января 2020

Я только что нашел решение: я вернулся на свой бэкэнд-сервер и заменил @Id val _id: ObjectId? на @Id val _id: String = ObjectId().toHexString(), так что у меня будет только значение objectId как "hexString" вместо других параметров как "machineIdentifier" или "processIdentifier"

...