nodejs Route.get() requires callback functions but got a [object String]

前端 未结 4 455
故里飘歌
故里飘歌 2021-01-27 05:24

I\'m starting coding using nodejs with express. So i did this in my file test.js which is into my folder routes :

const express = require(\'express\');

const ro         


        
相关标签:
4条回答
  • 2021-01-27 05:44

    Simple fix that should resolve your issue.

    Replace

    const router = new express.Router();
    

    With

    const router = express.Router();
    
    0 讨论(0)
  • 2021-01-27 06:02

    Add "I'm a test" inside res.send(), I mean add " around that String.

    0 讨论(0)
  • 2021-01-27 06:03

    in order to access /test use router.get('/' and app.use('/test' because express will concatenate / and /test.

    in your case you have to access /test/test so do this and enter /test in your borwser:

    const express = require('express');
    
    const router = new express.Router();
    
    router.get('/', (req, res) => { res.send("I'm a test"); });
    
    module.exports = router;
    

    Then, in your server.js :

    const test = require('./server/routes/test'); app.use('/test', test);
    
    0 讨论(0)
  • 2021-01-27 06:09

    The problems seems to be how you are mounting the router. Looking the the router middleware API it seems you should be doing it like this.

    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);
    
    0 讨论(0)
提交回复
热议问题