使用Ajax和Node.js的简单按钮点击示例?

5

我是一名新手,对于Ajax和Node.js + Express都不熟悉。目前,我正在尝试弄清楚如何通过按钮与前端和后端进行通信。

我在HTML页面上有一个按钮,我想使用它来调用后端的函数并将文本输出到客户端。

这是我需要的内容,但我正在寻找一个示例,演示如何实现。

所有这些都发生在/page上

index.hjs文件

<button class="btn btn-success" onclick="install()">Install</button>

// Client Side Ajax Script
<script>
    $('button').click(function () {
        $.post('/page', {data: 'blah'}, function (data) {
        console.log(data);
      });
    }, 'json');
</script>

app.js文件

app.post('/page', function (req, res, next) {
  calling.aFunction();
  res.write('A message!');
});

这些是我需要的所有部件吗?为了使这个功能正常工作,需要编辑哪些内容?

是的,我已经尝试过了,但是收到了错误信息 Uncaught ReferenceError: install is not defined - Web Hopeful
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Farmer Joe
删除install()方法/函数似乎无法解决问题。错误已经消失了,但是没有得到任何输出或其他信息。 - Web Hopeful
我不知道你指的是什么问题,你只是问这是否是正确的做法。你有应该包含的错误吗?你是否检查了网络监视器以查看“POST”方法是否完成? - Farmer Joe
请在控制台中验证请求是否已通过 - 检查您的节点控制台是否有错误。 - tymeJV
使用 res.send('A message!') 以在浏览器中输出文本。 - soulprovidr
1个回答

7

index.js

<button class="btn btn-success">Install</button>

// Client Side Ajax Script
<script>
    $('button').click(function () {
        $.post('/page', {data: 'blah'}, function (data) {
        console.log(data);
      });
    }, 'json');
</script>

app.js

app.post('/page', function (req, res) {
    calling.aFunction();
    res.send('A message!');
});

你应该在浏览器控制台中看到 "A message!"。

我该如何在app.js中获取“blah”数据? - BoIde
不确定您所说的“blah”数据是什么意思。这只是我展示发送到POST目标的有效负载的方式。 - takinola
抱歉,我必须在我的问题中更加具体:如果我想使用$.post方法将数据从index.js传回后端(app.js),我该怎么做?难道不是{data: 'blah'}吗?在app.post(...)中,我该如何从req中读取它? - BoIde
1
req.body.data 将是 "blah"。 - takinola
顺便说一下,我的最后一条评论假设您正在使用express-bodyparser来处理POST数据。 - takinola

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接