通过单击按钮调用POST方法

时间:2018-09-25 06:32:02

标签: node.js http express server http-method

这是我第一次设置服务器并需要帮助。因此,我的目标是通过NodeJS和Expresss设置服务器。假设我们有一个具有Admin和Users的应用程序。管理员单击按钮后,它将为服务器发送一些数据,然后用户可以获取数据。

这是我的服务器设置:

const el = document.getElementById('myForm');
if (el) el.reset();

我可以添加一些发布方法,比如说:

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

app.get('/', (req, res) => res.send('Hello World!'))

app.listen(port)

因此,我可以为 app.post('/', (req, res) => ....); 的POST方法准备服务器响应,但是我不知道如何通过单击按钮从我的应用发送一些数据(我的意思是listening这个post方法)。我看过很多教程,还没有看过任何实际的练习。

4 个答案:

答案 0 :(得分:2)

要接收POST参数,您需要body-parser模块,您可以像这样将其包含在app.js中,

var bodyParser = require('body-parser');
app.use(bodyParser.json());

这是您如何接收通过POST方法发送的表单字段的方法,

app.post('/', function(req, res) {
    var someField1 = req.body.some_form_field;
    var someField1 = req.body.form_field1;
});

希望这会有所帮助!

答案 1 :(得分:1)

在快递服务器上

var bodyParser = require('body-parser');
app.use(bodyParser.json());

app.post("/", (req,res) => {
    res.send("Hello");
});

在您的网页/应用上,您可以使用axios。 假设您的Express服务器使用本地主机和端口4000运行。

<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<script>
var instance = axios.create({
    baseURL: "http://localhost:4000" //use your express server's url(address) and port here
});

function onclick(){
    instance.post("/").then( response => {
        //response.data will have received data
    }
}
</script>

您可以使用此功能并在单击按钮时调用它

答案 2 :(得分:0)

您可以在HTML页面中像这样简单地使用jquery来调用您的api:

$("button").click(function(){
    $.post("/", function(data, status){
        alert("Data: " + data + "\nStatus: " + status);
    });
});

并从您的api发送数据:

var bodyParser = require('body-parser'); 
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.post('/', function(req, res) {
var obj = {};
obj.name="hello";
obj.lname="world" 
res.json(obj);
});

答案 3 :(得分:0)

示例:

HTML: 您的表单元素应具有名称(必填),以便在帖子正文请求中访问这些元素。

<form method="post" action="/">
    <input type="text" name="Name" />
    <br>
    <input type="text" name="Telephone" />
    <br>
    <input type="submit" />
 </form>

app.js

const express = require('express')
const app = express()
const port = 3000
var bodyParser = require('body-parser');
app.use(bodyParser.json());

app.post('/', (req, res) => {
    name = req.body.Name;
    telephone = req.body.Telephone;

    res.render('somefolder/index', {
       name: name,
       telephone: telephone,
    });
    // Above code is for reference if you want to load another page after post complete and get posted values in this page too.
    res.end();

});