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 router = new express.Router();
router.get('/test', (req, res) => {
res.send(`I'm a test`);
});
module.exports = router;
Then, in my server.js :
const test = require('./server/routes/test');
app.use('/test', test);
In my browser, it tells me Cannot get/test
I don't understand why. Need for help. Thanks
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);
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);
Simple fix that should resolve your issue.
Replace
const router = new express.Router();
With
const router = express.Router();
在res.send()
添加"I'm a test"
,我的意思是在该String周围添加"
。
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.