Estoy tratando de obtener una serie de objetos de MongoDB, usando mongoose y SSP. Un problema es que todos los ObjectId deben convertirse en cadenas. Actualmente lo estoy haciendo así:
export async function getServerSideProps({ query }) { try { const { user } = query await connectDB() const currentUser = await User.findOne({ user }).lean(), { _id } = await currentUser, userProperties = await Property.find({ ownerId: _id }).lean() currentUser._id = currentUser._id.toString() userProperties.forEach(props => { props._id = props._id.toString() props.ownerId = props.ownerId.toString() props.subarray.forEach(props => { props._id = props._id.toString() }) }) if (!currentUser) { return { notFound: true } } return { props: { currentUser, userProperties } } } catch (err) { console.log(err) return { redirect: { destination: '/', statusCode: 307 } } } } Esto produce: Error: If(...): Nothing was returned from render. Puedo recuperar al usuario sin propiedades, sin problemas, y puedo registrar en la consola las propiedades adjuntas aunque no se devuelva nada. ¿Que esta pasando aqui?
Para enviar una matriz desde getServerSideProps() , primero debe transformarla en una serie de bytes con JSON.stringify , recuerde que HTTP solo envía texto. Vuelva a transformarse como una matriz de objetos en su componente React con JSON.parse , con este método, no necesita crear las cadenas manualmente.