当用户点击底部时发送POST?

时间:2015-06-14 15:32:19

标签: node.js mongodb express

有很多问题都有同样的问题,但我发现的所有问题都只会告诉你实际的javascript是如何工作的,而不是这种事情的路由。

所以我现在尝试使用Node.js,Express和Mongodb来实现无限滚动系统的html和路由方面有点迷失。

我知道如何检查用户何时触及底部,我知道你需要在app.post路由中使用某种监听器来告诉数据库附加数据。但我不知道发布了什么'以及如何路由它。

它只是一个onClick监听器,正在观看"提交"价值是真的吗?当用户点击底部时,它变为真,Express获得POST,再加载十个条目。

我实际上并不理解在路由文件中等待事件值的实际概念,我认为分离前端和后端的重点意味着你不能等待一个值为&#34真"在javascript中并返回。

我认为这是一个非常普遍的问题,我的代码可能不需要。

因此,如果有人能够给出一个相当广泛的解释,我将如何看待整个事件监听事物及其路由,那将会有很大帮助。目前似乎不可能。

1 个答案:

答案 0 :(得分:1)

  

"正在做什么'发布'"

表单获得提交时,它会执行' POSTing'。 A"提交"是一个动作,就像一个函数调用,而不仅仅是一个被观察为真或假的布尔值。

<form method="POST" action="/url">
    <input name="name" value="value">
    <button>Submit</button>
</form>

此处单击该按钮时,将向服务器发出POST请求。

app.post('/url', function(res, res, next){
    req.body //=> {name: 'value'}
});
  

它只是一个onClick监听器,正在观看&#34;提交&#34;价值是真的吗?

onClick事件是一个事件。侦听器是附加到它的函数,在该事件发生时触发。

<button onClick="fn()"> Call `fn();` </button>
function fn(){
    console.log('that button was pressed');
}

有很多这样的事件。您可能正在使用的是onScroll,它会在滚动页面时触发。这是一个非常敏感的事件,它会触发滚动位置中最小的波动。这可能是您的表单一次多次发布的原因。

  

所以我可以将一个函数example()粘贴到我的路由/服务器文件中,然后使用<button onClick="example()">Call 'example()';</button>然后将example()编码为db.collection.find().limit(10)以使其可以推送数据库请求?

不,您正在混合客户端和服务器端代码。

HTML元素(如<button>)和与之关联的JavaScript(如onClick事件)都位于客户端,位于浏览器上。

您的服务器端代码NodeJS只能通过HTTP请求与客户进行交互或响应,例如GET /POST /form

你需要的可能是AJAX,它基本上使用客户端JavaScript来制作和处理上述对服务器发出的请求的结果。