Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js NodeJS Express post请求总是返回404页面,但它确实返回正确的页面_Node.js_Express - Fatal编程技术网

Node.js NodeJS Express post请求总是返回404页面,但它确实返回正确的页面

Node.js NodeJS Express post请求总是返回404页面,但它确实返回正确的页面,node.js,express,Node.js,Express,我是NodeJS的新手,我正在编写一个分页脚本来显示数据库数据。为了导航到下一个结果,我使用表单按钮,因为这是我使用节点实现按钮交互的唯一方法。我知道这不是最佳实践,但它现在已经足够满足我的需要:)然而,当用户单击下一步/上一步按钮时,post请求确实会被调用,但总是返回404页,而如果我复制该确切返回页并将其加载到我自己中,则页面加载良好 员额职能: if(req.body.next){ console.log(req.body.next) start += 100;

我是NodeJS的新手,我正在编写一个分页脚本来显示数据库数据。为了导航到下一个结果,我使用表单按钮,因为这是我使用节点实现按钮交互的唯一方法。我知道这不是最佳实践,但它现在已经足够满足我的需要:)然而,当用户单击下一步/上一步按钮时,post请求确实会被调用,但总是返回404页,而如果我复制该确切返回页并将其加载到我自己中,则页面加载良好

员额职能:

  if(req.body.next){
    console.log(req.body.next)
    start += 100;
    console.log(start);
    get_products(start);
  }
  if(start >= 0 && req.body.prev){
    console.log(req.body.prev)
    start -= 100;
    console.log(start);
    get_products(start);
  }
});
哈巴狗形状:

form(method = 'POST', action="/products")
     button(type='submit', name='prev', value='prev') previous
     button(type='submit', name='next', value='next') next
员额产出:

next
100
POST /products - - ms - -
prev
0
POST /products - - ms - -
next
100
POST /products - - ms - -
next
200
POST /products - - ms - -
next
300
POST /products - - ms - -
next
400
POST /products - - ms - -
prev
300

@蒙现实主义者的评论回答了我的问题。我不得不在post调用中添加一个
res.render
,使函数刷新页面

更新后的电话公告:

router.post('/', function(req, res, next) {
  if(req.body.next){
    start += 100;
    get_products(start);
    res.render('products' , {
      title:"All products from index: " + (start - 99).toString(),
      products:products
    })
  }
  if(start >= 0 && req.body.prev){
    start -= 100;
    get_products(start);
    res.render('products' , {
      title:"All products from index: " + (start + 101).toString(),
      products:products
    })
  }
});

使用
get_products
(例如
res.send
res.render
)获取产品后,重定向调用在哪里?啊,这可能是问题所在。我明天会研究它,谢谢@monttimho,你应该使用GET和一些参数,而不是POST。查找RESTful API。我认为是后期处理导致服务器抛出一个额外的错误,因为它不知道如何处理它。