Если я предполагаю использовать 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')});