![](/img/trans.png)
[英]Error: Route.get() requires callback functions but got a [object Undefined]
[英]nodejs Route.get() requires callback functions but got a [object String]
我开始使用带有express的nodejs进行编码。 所以我在我的文件test.js中做到了这一点,它位于我的文件夹路由中:
const express = require('express');
const router = new express.Router();
router.get('/test', (req, res) => {
res.send(`I'm a test`);
});
module.exports = router;
然后,在我的server.js中:
const test = require('./server/routes/test');
app.use('/test', test);
在我的浏览器中,它告诉我无法获取/测试
我不明白为什么。 需要帮助。 谢谢
问题似乎出在您如何安装路由器。 查看路由器中间件API ,看来您应该这样做。
test.js
const express = require('express');
const router = new express.Router();
router.get('/test', (req, res, next) => {
res.send("I'm a test");
next();
});
module.exports = router;
server.js
const express = require('express');
const app = express();
const test = require('./test');
app.use('/', test);
app.listen(3000);
为了访问/test
使用router.get('/'
和app.use('/test'
因为express将连接/
和/test
。
在您的情况下,您必须访问/test/test
因此请在浏览器中输入/test
:
const express = require('express');
const router = new express.Router();
router.get('/', (req, res) => { res.send("I'm a test"); });
module.exports = router;
然后,在您的server.js中:
const test = require('./server/routes/test'); app.use('/test', test);
简单的修复程序应该可以解决您的问题。
更换
const router = new express.Router();
同
const router = express.Router();
在res.send()
添加"I'm a test"
,我的意思是在该String周围添加"
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.