Home > OS >  Error: Route.post() requires a callback function
Error: Route.post() requires a callback function

Time:12-25

C:\Users\I ..\OneDrive\ecom-sql\node_modules\express\lib\router\route.js:202
        throw new Error(msg);
        ^

Error: Route.post() requires a callback function but got a [object Undefined]
    at Route.<computed> [as post] (C:\Users\I Am Moooooti\OneDrive\ecom-sql\node_modules\express\lib\router\route.js:202:15)
    at Function.app.<computed> [as post] (C:\Users\I .. \OneDrive\ecom-sql\node_modules\express\lib\application.js:482:19)
    at Object.<anonymous> (C:\Users\I Am Moooooti\OneDrive\ecom-sql\index.js:53:5)
.......... so on

index.js file

const express = require("express");
const cors = require("cors");
const db = require("./models/main");
const cookieParser = require('cookie-parser');
const session = require('express-session')
const passport = require('passport')
const { register, login } = require("./handlers/user.handler")
const app = express();

var corsOptions = {
  origin: "http://localhost:8080"
};

app.use(cors(corsOptions));
app.use(express.urlencoded({ extended: true }));

const sessionConfig = {
  name: 'session',
  secret: '25658595',
  resave: false,
  saveUninitialized: false,
  cookie: {
    httpOnly: true,
    expires: Date.now()   1000 * 60 * 60 * 24 * 7,
    maxAge: 1000 * 60 * 60 * 24 * 7
  },
};

app.use(express.json());
app.use(cookieParser());

app.use(session(sessionConfig));
app.use(passport.initialize());
app.use(passport.session());

// Routes for authentication
app.post('/register', register);

const PORT = process.env.PORT || 8080;
app.listen(PORT, () => {
  console.log(`Server is running on port ${PORT}.`);
});

user.handler.js File

const db = require("../models/main");
const user = db.users;
const Op = db.Sequelize.Op;

exports.register = (req, res) => {
    res.json({ 'success': 'Successfully registered!' })
}

I had changed a bit of code but i have not chaned anything in my inde.js file after i run my project it was showing me this error i dont know where i am doing wrong i have tried everything. Please help me :)

CodePudding user response:

requires a callback function but got a [object Undefined]

Sounds like your import is not importing what you expect it to. Maybe you need to use module.exports?

CodePudding user response:

Syntax problem

I Have to write this

app.post("/register", register);

instead of this

app.post('/register', register);
  • Related