Search code examples
node.jsreactjsurlparameters

LongUrl in Node req.params


i would like to ask, how i can send parameter / value with longUrl from React front-end to Node back-end.

This code not work. Have somebody with this practice - if it is possible?

this is React front-end

const ulozeniZmen = (event) => {
        fetch(
            'https://serverWithNodeApp.com/insert/' + id + '/' + name + '/' + longurl, { method: 'POST'}
        )
        event.preventDefault();
    }

this is Node back-end

app.post( '/insert/:id/:name/:longurl', function ( req, res ) {
                var post  = {
                    id: req.params.id,
                    name: req.params.name,
                    longUrl: req.params.longurl,
                };
                connection.query( "INSERT INTO `test` SET ?", post, ( error, rows ) => {
                    if( error ) throw error;
                    if( !error ) {
                    res.status( 200 ).send(rows);
                    }
                } )
            } );

Solution

  • I resolved my problem. Url params i was changed to Json object

    New version code front-end:

    const ulozeniZmen = (event) => {
       fetch('https://serverWithNodeApp.com/insert/',{
           method: 'POST',
           headers: { 'Content-Type': 'application/json' },
           body: JSON.stringify({
              id: id, name: name, longurl: longurl
           })
       })
       event.preventDefault();
    }
    

    New version code back-end:

    app.post( '/insert/', function ( req, res ) {
        let data = {id: req.body.id, name: req.body.name, longUrl: req.body.longurl};
        connection.query( "INSERT INTO `test` SET ?", data, ( error ) => {
            if( error ) throw error;
            if( !error ) {
                res.status( 200 ).send(rows);
            }
        })
    });