Home > Software engineering >  Message received from background. Values reset
Message received from background. Values reset

Time:02-07

I'm sending post request from "angular->port 4200" to "expressjs server->port 8000".

As an example i'm folowing this example: https://github.com/kuncevic/angular-httpclient-examples/blob/master/client/src/app/app.component.ts

I'm getting two error :

1)undefined from Nodejs(data and req.body.text)

2)Message received from background. Values reset

Angular side:

  callServer() {
            const culture = this.getLangCookie().split("-")[0];
            const headers = new HttpHeaders()
            headers.set('Authorization', 'my-auth-token')
            headers.set('Content-Type', 'application/json');
            
            this.http.post<string>(`http://127.0.0.1:8000/appculture`, culture, {
              headers: headers
            })
            .subscribe(data => {
            });
        }

expressjs side:

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

app.all("/*", function(req, res, next){
    res.header('Access-Control-Allow-Origin', '*');
    res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS');
    res.header('Access-Control-Allow-Headers', 'Content-Type, Authorization, Content-Length, X-Requested-With');
    next();
});

app.use( bodyParser.json() );       // to support JSON-encoded bodies
app.use(bodyParser.urlencoded({     // to support URL-encoded bodies
  extended: true
}));

app.post('/appculture', function (req, res) {
  var currentCulture = `${req.body.text} from Nodejs`;
  req.body.text = `${req.body.text} from Nodejs`;
  res.send(req.body)
})


app.listen(8000, () => {
    console.log('server started');
})

CodePudding user response:

Either you are not sending anything of there is no value in body.text

Try to console.log(req.body) instead of req.body.text.

Try to console.log(culture) and this.getLangCookie() on the client side to see if you are actually sending something. You can also make use of the network tab in the browser to inspect the request that you are sending.

CodePudding user response:

Angular side:

 callServer() {
            const culture = this.getLangCookie().split("-")[0];
            const headers = new HttpHeaders()
            headers.set('Authorization', 'my-auth-token')
            headers.set('Content-Type', 'application/json');
            
            this.http.get(`http://127.0.0.1:8000/appculture?c=`   culture, {
              headers: headers
            })
            .subscribe(data => {
            });
        }

Nodejs side:

app.get('/appculture', function (req, res) {
  currentCulture = req.query.c;
  res.send(req.body)
})
  •  Tags:  
  • Related