# TypeError: Router.use() requires a middleware function but got a Object

**Code:** `Router.use middleware` · **Category:** Node.js · **Seen on:** Node.js

app.use()/router.use() received an object instead of a function — usually a router module that wasn’t exported.

## Meaning

Forgetting module.exports = router (or exporting { router }) passes {} to app.use.

## Common causes

- Missing module.exports = router
- Named vs default export mismatch
- Importing the wrong file

## Quick fix

1. Export the router: module.exports = router / export default router
2. Match the import style

## Detailed fix by platform

### Node.js

1. 

```javascript
// routes/users.js
const router = express.Router();
module.exports = router;
```


## How to diagnose

1. **Export** — What does the route file export?
2. **Recent change** — Did it start after a deploy, upgrade, or configuration change? Compare with the last working version.

---
Source: [WhatIsMyError](https://whatismyerror.com/errors/nodejs/express-router-use-requires-middleware)
