繁体   English   中英

Api : Express : throw new TypeError('Router.use() 需要一个中间件函数,但得到了一个 ' + 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM