使用expressjs app.post({})进行路由。删除({})不使用第二个

时间:2015-01-28 19:44:31

标签: node.js express routing

我遇到了一个问题,我不知道如何解决它,我不是和nodejs + expressjs一样专家,但在这种情况下,我认为我在做所有的怀疑!

嗯,问题是当我在端点中添加不同的方法时,如下所示:

module.exports = function (app) {
    app.post('/myRoute', function (req, res){
             //all the thing
             res.json(msg: 'some msg here');
    })
       .delete('/myRoute', function (req, res){
             //all the thing
             res.json(msg: 'some msg here');
    });
我在app.js中的

包括所有路线:

var app = express(),
routePath = path.join(__dirname, 'src', 'routes', path.sep);


fs.readdirSync(routePath).forEach(function(file) {
    var route = routePath + file;
    require(route)(app);
});

现在,我可以(使用rest客户端)访问使用post方法的端点,但不能使用delete方法(获取500内部服务器错误' Response不包含任何数据。&#39 ;)

我不知道发生了什么......一些想法?

提前感谢!

2 个答案:

答案 0 :(得分:1)

链接在jQuery中运行的原因是因为每个函数都返回正在使用的元素,Express不会为您执行此操作,因此您必须将块分开,或者尝试改进express以返回app对象。要解决此问题,您只需添加另一个app变量。

module.exports = function (app) {
    app.post('/myRoute', function (req, res){
         //all the thing
         res.json({msg: 'some msg here'});
    })
    app.delete('/myRoute', function (req, res){
         //all the thing
         res.json({msg: 'some msg here'});
    });
}

答案 1 :(得分:0)

您可以使用app.route进行链接

app.route('/myRoute')
.post(function (req, res){
     //post action
})
.delete(function (req, res){
     //delete action
});