Как использовать синтаксический анализатор express body без отправки файлов stati c с app.use (если я не могу использовать gulp-connect) для отправки данных POST? - PullRequest
0 голосов
/ 28 января 2020

Если я предполагаю использовать 2 порта, и то, что я делаю, правильно, и нет другого способа сделать это, пожалуйста, дайте мне знать.

Я хочу конкретно отправить данные от javascript до node.js, а затем к проекту WordPress (который я достиг). Я использую express body parser (его не требуется) в проекте, который использует gulp. js. Проект выполняется локально на localhost: 8080, и я достиг отправки данных из порта 3000. Проект выполняется с помощью команды «gulp localhost», но Я хочу использовать только порт 8080 . «gulp-connect» использует http2, но я не могу найти способ отправки данных с javascript на node.js, используя тот же порт. Я не хочу использовать express, так как файлы и javascript не найдены, и это заставляет меня использовать разные порты, поэтому я хочу только gulp, даже если все работает, включая файлы на localhost: 8080

Я должен упомянуть, что я использую wpapi для отправки данных из node.js в php, чтобы опубликовать эти данные в любом проекте WordPress, что я достиг, но проблема в порте, так как я Я не уверен, возможно ли использовать 2 разных порта на хосте (я не знаю об этом).

Мой код следующий:

js Файл (Front-end )

<div style="padding-left: 21rem; padding-top: 10rem;" class="admin-quick-add">
        <h3>Quick Add Post</h3>
        <input type="text" name="title" placeholder="Title">
        <textarea name="content" placeholder="Content"></textarea>
        <button id="quick-add-button" onclick="getCityForecast()">Create Post</button>
    </div>

    <script>

        function getCityForecast(e){

            //User selects option data from an early JSONP request.
            var id = document.getElementById('quick-add-button');
            var getTitle = document.querySelector('.admin-quick-add input').value;
            var getContent = document.querySelector('.admin-quick-add textarea').value;

            //Assembles the suffix for http request that I will do in Node.
            var obj = JSON.stringify({getTitle: getTitle, getContent: getContent});

            console.log(obj);

            var xhr = new XMLHttpRequest();

            xhr.open("POST", "http://localhost:3000", true);
            xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
            xhr.send(obj);
        }

    </script>

сервер. js файл (бэкэнд):

const fs = require('fs');

let info;
let user;
let pass;

fs.readFile('message.txt', function(err, data) {
    if (err) throw err;
    info = data.toString().split('\n');
    user = info[0];
    pass = info[1];
    return info;
})

const url = require('url');
let endpoint = url.parse('https://dev.dryftrevere.com/wp-json', true);

var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var path = require('path');
var request = require('request');

// ****************** Middle Ware *******************
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());


app.use(express.static('../src'));

let getInfo;

app.post('/', function(req, res){
    console.log('working');

    getInfo = req.body;

    console.log(getInfo);

    var wpapi = require( 'wpapi/superagent' );

    const wp = new wpapi({
        endpoint: endpoint.href,
        // This assumes you are using basic auth, as described further below
        username: user,
        password: pass
    });

    console.log(wp);

    wp.posts().create({
        // "title" and "content" are the only required properties
        title: getInfo.getTitle,
        content: getInfo.getContent,
        // Post will be created as a draft by default if a specific "status"
        // is not specified
        status: 'publish'
    }).then(function( response ) {
        // "response" will hold all properties of your newly-created post,
        // including the unique `id` the post was assigned on creation
        console.log('data was send');
        console.log( response.id );
    })
});

app.listen(3000, function() { console.log('listening')});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...