【问题标题】:NestJs - Property added in service is not returnedNestJs - 不返回服务中添加的属性
【发布时间】:2019-11-16 21:20:46
【问题描述】:

我正在使用与 mongoDb 连接的 NestJs。 mongo 中的对象(以及nestjs 中的方案)具有以下结构{NAME: string, YEAR: number, COVER: string}。 Estoy usando NestJs conectado con mongoDb。 Los objetos que se guardan en mongo tiene la siguiente estructura。

接口和dto有结构

export class NAME {
    readonly NAME: string;
    readonly YEAR: number;
    readonly COVER: string;
    COVER_BASE64: string;
}

export interface NAME extends Document {
    readonly NAME: string;
    readonly YEAR: number;
    readonly COVER: string;
    COVER_BASE64: string;
}

在服务类中,我有下一个函数,它附加到从 Mongo 获取的对象的 cover_base64 属性。

async getAlbums(): Promise<Album[]> {
        return new Promise((resolve, reject) => {
            this.model.find().exec((err, objs) => {
                if (err) { reject(err); }
                const objres = objs.map(obj => {
                    const base64 = this.getBase64(obj);
                    obj.COVER_BASE64 = base64;
                    return obj;
                });
                resolve(objsres);
            });
        });
   }

问题是控制器类中返回的对象没有 COVER_BASE64 属性。但是在调试服务时,我看到每个“albumsRes”对象的属性 COVER_BASE64 具有正确的值,但调试控制器该属性似乎“消失”。

控制器中不能存在该属性是有原因的,例如在邮递员中,http 请求没有获得 COVER_BASE64 属性。

【问题讨论】:

    标签: typescript api nestjs


    【解决方案1】:

    难道不是因为没有await 新的承诺吗?它还解释了为什么在调试模式下它可以正常工作。 试试:

    async getAlbums(): Promise<Album[]> {
            return await new Promise((resolve, reject) => {
                this.model.find().exec((err, objs) => {
                    if (err) { reject(err); }
                    const objres = objs.map(obj => {
                        const base64 = this.getBase64(obj);
                        obj.COVER_BASE64 = base64;
                        return obj;
                    });
                    resolve(objsres);
                });
            });
       }
    

    【讨论】:

    • 这似乎不适用于等待。我注意到,如果我覆盖 COVER 属性,则会在 http 响应中返回。只能使用 mongoDb 对象属性吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-15
    • 2021-05-06
    • 2020-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多