我刚刚开始使用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;
posts.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;
这行。但是我确实已经显示了该行,但仍然收到相同的错误。真的不确定出什么问题
答案 0 :(得分:0)
据我所知,我认为您需要重写这一部分:
router.route('/')
代替
router.get
通常,这些类型的错误源自未正确导出的路由器。