一尘不染

Node.js使用AJAX将数据发送到后端

node.js

我对AJAX还是很陌生,所以很抱歉可能会引起误解,但我还没有完全理解。

我正在尝试一件简单的事情。我有一个server.js文件,基本上是我的后端。然后我有一个index.html和一个script.js。就是这样,这是一个非常基本的设置。现在,在我的上script.js,我正在获取一些数据(邮件地址)。现在,我想将该数据发送到我的后端(进入server.js)以在那里使用它。我怎样才能做到这一点?

我已经找到了一些关于使用node.js进行AJAX的帖子,但是我不明白,特别是在后端我的接收位置。顺便说一下,我正在为服务器使用Express。

我所拥有的script.js是:

$.ajax({
            type: "POST",
            url: "server.js",
            data: { mail: mail },
            success: function(data) {
            },
            error: function(jqXHR, textStatus, err) {
                alert('text status '+textStatus+', err '+err)
            }
        });

到目前为止正确吗?现在如何接收我的信息server.js

到目前为止,没有多少,只是:

var express = require('express');

var app = express();
var server = app.listen(3000);

app.use(express.static('public'));

谢谢你的帮助 :)


阅读 222

收藏
2020-07-07

共1个答案

一尘不染

注意:这是在使用代码更新问题之前编写的,因此,我在此处用作示例的字段名称和端口号可能需要更新为正确的值。

客户端代码-jQuery示例:

$.post('/email', { address: 'xxx@example.com' });

(这可以接受可选的回调,并且返回可用于添加成功/错误处理程序的promise)

服务器端代码-Express示例:

const express = require('express');
const bodyParser = require('body-parser');

const dir = path.join(__dirname, 'public');

const app = express();

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));

app.post('/email', (req, res) => {
  // you have address available in req.body:
  console.log(req.body.address);
  // always send a response:
  res.json({ ok: true });
});

app.use(express.static(dir));

app.listen(4443, () => console.log('Listening on http://localhost:4443/'));

假设您的静态文件(HTML,客户端JavaScript,CSS)位于public相对于server.js文件的目录中。

2020-07-07