为什么发布请求在本地工作而不是远程工作?搜索的网址是不同的

时间:2016-09-12 03:24:07

标签: javascript node.js http url express

我在特定网址上有一个带按钮的页面。在这里,他们是本地和远程

local:http://localhost:4000/individual/comp6/57d614b711d268030080eda9/

远程:https://linknon.herokuapp.com/individual/comp6/57d614b711d268030080eda9/(这不是我的真实链接)

当我点击按钮并在我的代码中有app.post("/individual/"+ comp + "/usefulness", postHandler)时,localhost正常工作(数据库更新)

但是当我上线并点击按钮时我得到Failed to load resource: the server responded with a status of 404 (Not Found)它无法获得https://linknon.herokuapp.com/individual/comp6/57d614b711d268030080eda9/usefulness。我发现这很奇怪。 为什么它适用于本地而非远程

我的app.post("/individual/"+ comp + "/usefulness", postHandler)不包含公司名称后的ID(公司名称为comp var)。我假设对于遥控我不得不因为某些原因在Id中添加。我尝试过使用正则表达式(从未做过b4)app.post("/individual/.+/usefulness", postHandler)无法在本地工作,并想知道它是否可以在远程工作。

我也在这个

的同一个模块中发布请求
app.post("/usefulness", postHandler);
app.post("/reviewfor/usefulness", postHandler);

那些似乎有效

我觉得他们最后都有共同的usefulness所以也许正则表达式会起作用。

1 个答案:

答案 0 :(得分:0)

这是你的问题。定义路径时不要以这种方式使用变量:

app.post("/individual/"+ comp + "/usefulness", postHandler)

它混合了app-load-time变量(在这种情况下为comp)与每个请求变量应该是什么。 Express使用路由参数处理每个请求变量。所以你需要这样的东西:

app.post("/individual/:comp/usefulness", postHandler)

然后在postHandler的正文中,您可以访问req.params.comp,该comp1将是此请求中网址的具体值,例如comp2comp3,{{1}等等。