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

nam*_*ess 2 javascript ajax jquery node.js express

我对 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)
            }
        });
Run Code Online (Sandbox Code Playgroud)

到此为止吧?我现在如何接收我的server.js?

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

var express = require('express');

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

app.use(express.static('public'));
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助 :)

rsp*_*rsp 6

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

客户端代码 - jQuery 示例:

$.post('/email', { address: 'xxx@example.com' });
Run Code Online (Sandbox Code Playgroud)

(这可以采用可选的回调,并返回一个可用于添加成功/错误处理程序的承诺)

服务器端代码 - 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/'));
Run Code Online (Sandbox Code Playgroud)

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

有关 JSON/表单编码问题的背景信息,请参阅此内容:

有关提供静态文件的背景,请参阅此内容: