繁体   English   中英

nodejs Route.get()需要回调函数,但得到一个[object String]

[英]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.

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