Вызов метода POST нажатием кнопки - PullRequest
0 голосов
/ 25 сентября 2018

это мой первый раз, когда я настраиваю сервер и нуждаюсь в помощи.Поэтому моя цель - настроить серверы на NodeJS и Express.Допустим, у нас есть приложение с администратором и пользователями.Когда администратор нажимает кнопку, он отправляет некоторые данные на сервер, а затем пользователи могут получить данные.

Итак, это мой сервер настроен:

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) => ....);

Итак, я могу подготовить реакцию сервера для listening метода POST, но я не знаю, как отправить некоторые данные из моего приложения, нажав кнопку (я имею в виду calling).этот пост метод).Я смотрел кучу уроков и не видел никаких реальных упражнений.

Ответы [ 4 ]

0 голосов
/ 25 сентября 2018

Пример:

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();

});

0 голосов
/ 25 сентября 2018

Вы можете просто использовать jquery на своей HTML-странице, например, для вызова 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);
});
0 голосов
/ 25 сентября 2018

Чтобы получить параметры 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;
});

Надеюсь, это поможет!

0 голосов
/ 25 сентября 2018

На вашем экспресс-сервере

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

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

На вашей веб-странице / в приложении вы можете использовать axios .Допустим, ваш экспресс-сервер работает с localhost и портом 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>

Вы можете использовать эту функцию и вызывать ее по нажатию кнопки

...