我有一个关于Express.js的奇怪问题
我有这样的代码
app.get('/', function(req, res) {
res.send('Homepage');
});
app.get('/developers', function(req, res) {
res.send('Developers');
});
当我访问我的本地主机时,我看到主页文本,当我访问/ developers页面时,我看到开发人员文本,但是当我访问/ developers / developer页面时,我看不到结果。
app.get('/developers/developer', function(req, res) {
res.send('Developer test');
});
为什么第一条和第二条路线有效?为什么第三条路线不起作用?
答案 0 :(得分:1)
这是因为您输入的路线的顺序。 app.get首先匹配/开发人员,并仅对其进行回调。尝试在/ developers路由上面传递/开发者/开发者路由。它会起作用。
喜欢这个
app.get('/', function(req, res) {
res.send('Homepage');
});
app.get('/developers/developer', function(req, res) {
res.send('Developer test');
});
app.get('/developers', function(req, res) {
res.send('Developers');
});
此外,您可以在/ developers route
中内联/ developers / developerindex.js
var developer = require('developer');
app.get('/', function(req, res) {
res.send('Homepage');
});
app.use('/developers', developer());
developer.js
var router = express.Router();
var developer = function() {
var api = router();
api.get('/', function(req, res) {
res.send('Developers');
});
api.get('/developer', function(req, res) {
res.send('Developer test');
});
};
module.exports = developer;