我知道以前曾在这里提出过这个问题,但是我找不到通过他们的解决方案,所以我必须自己问。
这是我的app.js代码
var express = require('express');
var exphbs = require('express-handlebars');
var router = express.Router();
var paymentCampaigns = require('./routes/paymentCampaigns');
var app = express();
app.use('/payment-campaigns', paymentCampaigns);
//create server and listen to the port
http.createServer(app).listen(app.get('port'), function(){
winston.log('info', 'The server has started');
});
app.use(function(req, res, next){
var err = new Error('Not Found');
err.status = 404;
next(err);
});
module.exports = app;
这是paymentCampaigns.js的代码
var express = require('express');
var router = express.Router();
router.get('/add', function(req, res){
res.render('add_campaign');
});
router.get('/pending', function(req, res){
res.send('hello this is pending');
});
module.exports = router;
每当我键入localhost:8000 / payment-campaigns / pending时,它都会带我到404错误页面。/ add路由将我带到add_campaign页面。我究竟做错了什么?我那里还有其他路线,除了这一条以外,其他所有路线都工作正常。
问题出在我的代码中定义路由的方式。挂起的路由是在末尾定义的,在它之前还有另一个带有param的get路由。
所以像这样:
var express = require('express');
var router = express.Router();
router.get('/add', function(req, res){
res.render('add_campaign');
});
router.get('/:campaignId', function(req,res) {
//get the campaign detail using the campaignId
});
router.get('/pending', function(req, res){
res.send('hello this is pending');
});
module.exports = router;
我必须在/:campaignId路由之前移动所有我唯一的“获取”路由,然后它开始工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句