hagopj13 / hagopj13/node-express-boilerplate

Mongoose V5.5.3+ introduced .remove() deprecation

Open
#281 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
JavaScript
Stars
7.7k
Forks
2.3k
PR merge metrics
No merged PRs in 30d

Description

**PROBLEM**
As of Mongoose V5.5.3+, use of the `.remove()` function on documents was deprecated, and should no longer be used, it will throw an error for a non-existent function.

**ERROR**
`ERROR: POST /v1/auth/logout 500 - 43.461 ms - message: refreshTokenDoc.remove is not a function`

**FIX**
Anyone updating their mongoose with this project should use `.deleteOne()` instead. This project utilizes the deprecated .remove() in two locations within **auth.service.js**, and one location in the **user.service.js**

**auth.service.js LINES 27 - 33**
```js
const logout = async (refreshToken) => {
const refreshTokenDoc = await Token.findOne({ token: refreshToken, type: tokenTypes.REFRESH, blacklisted: false });
if (!refreshTokenDoc) {
throw new ApiError(httpStatus.NOT_FOUND, 'Not found');
}
await refreshTokenDoc.remove(); // DEPRECATED, REPLACE WITH await refreshTokenDoc.deleteOne();
};
```

**auth.service.js LINES 40 - 52**
```js
const refreshAuth = async (refreshToken) => {
try {
const refreshTokenDoc = await tokenService.verifyToken(refreshToken, tokenTypes.REFRESH);
const user = await userService.getUserById(refreshTokenDoc.user);
if (!user) {
throw new Error();
}
await refreshTokenDoc.remove(); // DEPRECATED, REPLACE WITH await refreshTokenDoc.deleteOne();
return tokenService.generateAuthTokens(user);
} catch (error) {
throw new ApiError(httpStatus.UNAUTHORIZED, 'Please authenticate');
}
};
```

**user.service.js LINES 73 - 80**
```js
const deleteUserById = async (userId) => {
const user = await getUserById(userId);
if (!user) {
throw new ApiError(httpStatus.NOT_FOUND, 'User not found');
}
await user.remove(); // DEPRECATED, REPLACE WITH await user.deleteOne();
return user;
};
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.