Heroku + MERN stack - пустые запросы HTTP POST любых значений - PullRequest
0 голосов
/ 24 мая 2018

Я пытаюсь отправить запрос HTTP POST в мою базу данных Mlab.

В разработке все нормально.Но в производственной среде мои запросы отправляются без каких-либо значений.

Я использую MongoDB + Express + Reactjs + Node - MERN STACK - + Heroku PaaS.

Также я получил по адресув начале моего сеанса появляется сообщение о том, что:

Failed to register a ServiceWorker: A bad HTTP response code (404) was received when fetching the script 

Но в настоящее время я больше не получаю это сообщение: я настроил своего сервисного работника на обновление при каждой перезагрузке и перемещаю копию моегоserviceworker.js в моей папке HTML.

Почему мои HTTP-запросы POST все еще остаются пустыми, когда я их отправляю?

Что касается моих журналов, кажется, есть проблема с моими работниками сервиса и файлом.карта:

2018-05-24T18: 25: 39.795372 + 00: 00 heroku [маршрутизатор]: at = метод информации = GET
path = "/ static / js / main.3685cd33.js.map "host = #. com
request_id = 03674121-2fac-42ec-9459-e5fa17eb2ea7 fwd =" 93.27.27.184 "dyno = web.1 connect = 0ms service = 7ms status = 404 bytes = 413 protocol = https2018-05-24T18: 25: 41.576623 + 00: 00 heroku [router]: at = info method = GET path = "/ service-worker.js" host = #. Herokuapp.com request_id = 065fb0eb-6606-4603- 8673-75e59445a1ea fwd = "93.27.27.184" dyno = web.1 connect = 0ms service = 1 мс = 404 байта = 400 протокол = https 2018-05-24T18: 25: 41.902150+00: 00 heroku [router]: at = info method = GET path = "/ static / css / main.969d7734.css.map" host = #. Herokuapp.com request_id = a16b6a78-9167-4672-9888-3f141a46c3ef fwd= "93.27.27.18

4" dyno = web.1 connect = служба 0 мс = состояние 1 мс = 404 байта = протокол 415 = https Вот мой App.js:

  (...)
alert("word = "+ this.state.word) //  **SO FAR, THE VALUE IS STILL DISPLAYED**
fetch("/api/words",{
 method:"POST",
 headers: {
   'Accept': 'application/json, text/plain, */*',
   'Content-Type':'application/json'
 },
 body:JSON.stringify({ // **THEN I LOST THE CONTACT WITH THE VALUES FROM HERE**
                       "word":this.state.word,
                       "definition":this.state.definition,
                       "sound":this.state.audioRecorded
                     })
})
.then((res) => res.json())
.then((data) => console.log(data))

  }


   <form>
    (...)
   </form>
  )
 } 
 };

Вот мой server.js:

const {createServer} = require("http");
var express = require("express")
var path = require("path")
var app = express() ;
var port = process.env.PORT || 7500 ;
var databaseName = "ntsat";
var bodyParser = require("body-parser");
app.use(bodyParser.json()) ;
app.use(express.static(path.join(__dirname, '../react-ui/public/index.html')));
var mongoose = require("mongoose");
var url = process.env.MONGOLAB_URI;
mongoose.connect([url to my mlab])
var db = mongoose.connection;
db.on ("error", console.error.bind(console, "connection fails"))
db.once("open", function () {
console.log(`mongoose : connection succeed on ${databaseName} database`); 
});
 app.use("/api", require("./router/router.js"));
 app.listen( port, function(){
   console.log("Express server listening on port %d in %s mode", this.address().port, 
 app.settings.env); 
 });
 module.exports = app;

1 Ответ

0 голосов
/ 01 июня 2018

Я изменил модуль Fetch для модуля Axios , теперь он работает нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...