繁体   English   中英

发送数据表数据通过 Javascript 到快递 API

[英]Sending data formData througt Javascript to Express API

因此,当我通过 javascript 处理发布请求时,我将数据发送到 api,但我不知道如何在 API 中记录数据。

我试过的

app.post("/register", (req,res) => {
    res.render("register/register", {});
    -> i tried to log it as req.query, req.params or req.body console.log(req.query)
})

JS代码:

document.querySelector("#regForm").addEventListener('submit', e => {
    e.preventDefault();
    let username = document.querySelector("#username").value;

    let formData = new FormData(document.querySelector("#regForm"));
    
    console.log([...formData]);

    let data = JSON.stringify([...formData]);
    console.log(data)
        
        const request = new XMLHttpRequest();
        request.open("POST", '/register');
        request.send(data);
    })

编辑:完整的 API 代码:

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

const app = express();
const port = process.env.POST || "8080";

var jsonParser = bodyParser.json()
var urlencodedParser = bodyParser.urlencoded({ extended: false })

app.listen(port, () => {
    console.log(`Running on port ${port}`);
})
// middleware & static files
app.use(express.static('public'));
app.use(express.json());

app.set("view engine", "ejs");

app.use(express.static(__dirname + '/src'));
app.get("/profile/:name", (req,res) => {
    res.render("profile", {username:req.params.name});
})

app.get("/register", (req,res) => {
    res.render("register/register", {});
})

app.post("/register", jsonParser, (req,res) => {
    res.render("register/register", {});
    console.log(req.body)
})

对 LakiMancic 的回答 - 错误: error

没有任何效果。 你能帮助我吗? 谢谢!

尝试指定您的 XMLHttpRequest 的内容类型

request.setRequestHeader("Content-Type", "application/json;charset=UTF-8");

在 request.open(...) 之后; 在 request.send(...); 之前

更新(对我有用的完整代码)

const express = require('express');
const app = express();
const port = 3000;

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

app.get('/', (req, res) => {
    res.sendFile(__dirname + '/main.html');
});

app.post("/register", (req,res) => { 
    console.log(req.body)
});

app.listen(port, () => {
    console.log(`Example app listening on port ${port}`);
});
document.querySelector("#regForm").addEventListener('submit', e => {
            e.preventDefault();
            let username = document.querySelector("#username").value;

            let formData = new FormData(document.querySelector("#regForm"));
            
            console.log([...formData]);

            let data = JSON.stringify([...formData]);
            console.log(data)
            
            const request = new XMLHttpRequest();
            request.open("POST", '/register');
            request.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
            request.send(data);
        })

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM