Javascript Node.js中端点与express应用程序之间的冲突

Javascript Node.js中端点与express应用程序之间的冲突,javascript,node.js,express,Javascript,Node.js,Express,首先,我已经找到了这个问题的解决方案,但什么也没找到。抱歉,如果是重复的 我的express+node.js应用程序中有两个端点,如下所示: // Gets a tweet by unique id app.get('/tweets:id', function(req, res, next) { // Response management }); // Gets mentions of user unique id app.get('/tweets/mentions', functi

首先,我已经找到了这个问题的解决方案,但什么也没找到。抱歉,如果是重复的

我的express+node.js应用程序中有两个端点,如下所示:

// Gets a tweet by unique id
app.get('/tweets:id', function(req, res, next) {
    // Response management
});

// Gets mentions of user unique id
app.get('/tweets/mentions', function(req, res, next) {
    // Response management
});
问题在于,请求向“/tweets/提及”提交请求时,首先由“/tweets/:id”参与,然后由“/tweets/提及”参与,从而产生冲突

我试图更改端点的声明顺序,但请求始终由两个端点参与

我也尝试过类似于“/tweets::notices”的方法,但我需要通过“/tweets/notices”访问端点,我想有一种可能的方法

我如何解决这一冲突? 谢谢。

您是否在其中一个处理程序中使用
next()

next()

如果您有多个基本路径,我总是建议您使用“路由器”,因为它可以帮助您保持它的有序性。

您是否在其中一个处理程序中使用
next()

next()


如果您有多个基本路径,我总是建议使用“路由器”,因为它可以帮助您保持其组织。

您可以通过检查“tweet by id”处理程序中
req.params.id
的值来解决冲突。

您可以通过检查“tweet by id”处理程序中
req.params.id
的值来解决冲突处理程序。

对于具有附加参数的路由,始终建议不要使用其他路由的相同基本路径

像这样的东西可能对你有用:

app.get('/tweets/users/:id', function(req, res, next) {
    // Response management
});

// Gets mentions of user unique id
app.get('/tweets/mentions', function(req, res, next) {
    // Response management
});

对于具有其他参数的路由,始终建议不要使用与其他路由相同的基本路径

像这样的东西可能对你有用:

app.get('/tweets/users/:id', function(req, res, next) {
    // Response management
});

// Gets mentions of user unique id
app.get('/tweets/mentions', function(req, res, next) {
    // Response management
});

一个问题:如何在“/tweets/Attentions/”端点中传递唯一id?您应该使用
/Attentions
进行适当的REST设计。@MatteoTosi我在一个标题中有一个JWT,允许我在数据库中搜索他的用户id。@PavelGatner谢谢,我正在考虑这个问题。但我也对如何解决这个问题感兴趣,因为我对其他端点也有同样的问题。@rpfc尝试使用类似“/tweets/user/:id”的内容作为第一个端点。对于具有附加参数的路由,始终建议不要使用与其他路由相同的基本路径。一个问题:如何在“/tweets/Attentions/”端点中传递唯一id?您应该使用
/Attentions
进行正确的REST设计。@MatteoTosi我在一个标题中有一个JWT,允许我在数据库。@PavelGatnar谢谢,我正在考虑。但我也对如何解决这个问题感兴趣,因为我对其他端点也有同样的问题。@rpfc尝试使用类似“/tweets/user/:id”的内容作为第一个端点。对于具有附加参数的路由,始终建议不要使用与其他路由相同的基本路径。感谢您的回复,使用路由器而不使用next()是我的解决方案。感谢您的回复,使用路由器而不使用next()是我的解决方案。谢谢,答案是否有效,感谢您的贡献,我会考虑所有这些答案。谢谢,答案是有效的,谢谢你的贡献,我会考虑所有这些答案。谢谢,我会考虑这个问题。谢谢,我会考虑更多的问题!