![](/img/trans.png)
[英]Express error: throw new TypeError('Router.use() requires middleware function but got a ' + gettype(fn));
[英]Api : Express : throw new TypeError('Router.use() requires a middleware function but got a ' + gettype(fn))
我刚刚开始使用 express 构建 api,但出现错误。
Server.js 代码
const express = require('express');
const mongoose = require('mongoose')
const users = require('./routes/api/users');
const profile = require('./routes/api/profile');
const posts = require('./routes/api/posts');
const app = express();
//DB config
const db = require('./config/keys').mongoURI;
//connet to MongoDB
mongoose
.connect(db)
.then(() => console.log('MongoDB connected'))
.catch(err => console.log(err));
app.get('/', (req, res) => res.send('Hello Ajas Bakran'));
//Use Routes
app.use('/api/users', users);
app.use('/api/profile', profile);
app.use('/api/posts', posts);
const port = process.env.PORT || 5000;
app.listen(port, () => console.log(`Server running on port ${port}`));
users.js 代码
const express = require('express');
const router = express.Router();
router.get('/test', (req, res) => res.json({msg:'Hello Users'}));
module.exports = router;
profile.js 代码
const express = require('express');
const router = express.Router();
router.get('/test', (req, res) => res.json({msg:'Hello profile'}));
module.exports = router;
帖子.js
const express = require('express');
const router = express.Router();
router.get('/test', (req, res) => res.json({msg:'Hello posts'}));
module.exports = router;
我在 stackoverflow 上提到的答案很少,但最常见的解决方案是使用module.exports = router;
这条线在最后。 但我确实已经存在该行,但我仍然遇到相同的错误。 真的不知道出了什么问题
从我所见,我认为您需要重新编写这部分:
router.route('/')
代替
router.get
通常这些类型的错误源自未正确导出的路由器。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.