我在特定网址上有一个带按钮的页面。在这里,他们是本地和远程
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
所以也许正则表达式会起作用。
答案 0 :(得分:0)
这是你的问题。定义路径时不要以这种方式使用变量:
app.post("/individual/"+ comp + "/usefulness", postHandler)
它混合了app-load-time变量(在这种情况下为comp
)与每个请求变量应该是什么。 Express使用路由参数处理每个请求变量。所以你需要这样的东西:
app.post("/individual/:comp/usefulness", postHandler)
然后在postHandler
的正文中,您可以访问req.params.comp
,该comp1
将是此请求中网址的具体值,例如comp2
,comp3
,{{1}等等。