skip to Main Content

userId in database:

 userId:"610405b8f3e5fb0484f5fac2"

I want to update tha data by that Id,but getting 500Internal Server Error.I am trying in this way:

service.ts

  public async updateUser(
    UserId: any,
    data: any
): Promise<any | Error> {
    try {
        return new Promise((resolve, reject) => {
            UserCollection.findByIdAndUpdate(
                UserId,
                { ...data },
                (err: any, success: any) => {
                    if (err) {
                        reject(err);
                    }
                    if (!success) {
                        resolve(false);
                    } else {
                        resolve(success);
                    }
                }
            );
        });
    } catch (e) {
        console.log('service errorn', e);
        throw e;
    }
}

controller.ts

  public updateUserController = async (req: Request, res: Response, next: NextFunction): Promise<Response | void> => {
    try {
        if (req.body.UserId!='') {
            let results = await this.ServicesService.updateUser(req.params.UserId, req.body);
            if (results != false) {
                this.success(res, 'Updated Successfully', 200, results._id);
            }
        } 
        return await this.error(res, 'Something Went Wrong!.', 500);
    } catch (e) {
        next(e)
    }
}

How to achive this,thanks….

2

Answers


  1. Chosen as BEST ANSWER

    I realized my mistake,Instead of using findByIdAndUpdate,I used findOneAndUpdate,error solved.

    UserCollection.findOneAndUpdate(
                UserId,
                { ...data },
                (err: any, success: any) => {
                    if (err) {
                        reject(err);
                    }
                    if (!success) {
                        resolve(false);
                    } else {
                        resolve(success);
                    }
                }
            );
    

  2. You can simple have the updateMany() method to update multiple documents with same userId at once.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search