user11277006
user11277006

Reputation:

User.destroy is not a function

I use the oracle-sage library. And when I want to delete a record, an error occurs.

{
    "success": false,
    "message": "User.destroy is not a function"
} 

How can fix this?

const User = require('../models/User')
const errorHandler = require('../utils/errorHandler')

module.exports.remove = async function (req, res) {
    try {
        await User.destroy({
            USER_ID: req.params.USER_ID
        })
        res.status(200).json({
            message: 'User deleted.'
        })
    } catch (e) {
        errorHandler(res, e)
    }
}

Upvotes: 1

Views: 4482

Answers (2)

ZKS
ZKS

Reputation: 2876

Another way to implement destroy method is as below

 const deleteUser = async (req,res) => {
        console.log('Deleting User by Id')
        const userId = await req.params.id
        const user = await User.destroy({
            where:{
                id : userId
            },
            raw:true
        }).catch(error=>console.log(error))

Upvotes: 1

Davebra
Davebra

Reputation: 488

Probably .destroy is not a static method, needs an instantiated object. You can try to get the user object first then destroy it.

try {
    let user = await User.findOne({ USER_ID: req.params.USER_ID});

    user.destroy().then(function(){

        res.status(200).json({
            message: 'User deleted.'
        })

    });

} catch (e) {
    errorHandler(res, e)
}

Upvotes: 1

Related Questions