我正在创建一个Node.js api,我在理解路由器中间件方面遇到了一些困难。 这是我点击api时运行的中间件。
app.use("/", index);
app.use("/menu", menu);
索引 - > index.js;
menu - > menu.js
现在,index.js有一个注册和登录路由器,都使用POST。 这在menu.js中不存在
的 index.js
router.post("/signup", function(req,res){
router.post("/signin", function(req,res){
问题如下:
答案 0 :(得分:1)
我发布这个作为答案,因为我认为它解决了你的问题。
如果你从一个没有前导/
的网页上进行Ajax调用,例如signup
,那么浏览器将其解释为页面相对,这意味着页面URL是{{1并且您请求http://localhost/menu
的ajax调用,然后浏览器将请求signup
的网址。
但是,如果您使用http://localhost/menu/signup
和请求/
为ajax请求添加前缀,那么这是域相关的,因此浏览器将添加域并请求/signup
。不会使用当前页面的路径。您几乎总是希望使用前导http://locahost/signup
,因为无论您在哪个页面,这都会为您提供一致的URL请求。