简体   繁体   中英

Put Request using pure NodeJs

I am new to nodejs. I am trying a basic example using http requests Get,Post and Put. I am done with POST and GET.

var http = require("http");
var port = 8081;

function getLogin(req, resp){
    resp.writeHead(200, {"Content-Type" : "text/html" });
    resp.write("<html><body><form action='http://localhost:8081/home' method='post'><table><tr><td>Username : <input type='text' name='username' id='username' required/></td></tr><tr><td>Password  : <input type='password' name='password' id='password' required/></td></tr><tr><td><input type='submit' value='Login' /></td></tr></table></form></body></html>");
resp.end();
}

function getHome(req, resp){
     resp.writeHead(200 , {'Content-Type':'text/html'});
     resp.write("<html><body>Niranth<br><input type='button' value='Add Skill'/></body></html>");
     resp.end();
}

function getSkill(req, resp){

}

function get404(req, resp){
    resp.writeHead(404, "404", {"Content-Type" : "text/html" });
    resp.write("<html><body>404</body></html>");
    resp.end();
}


http.createServer(function(req, resp){
    if(req.method == 'GET'){
        if(req.url === "/"){
            console.log("hello get");
            getLogin(req, resp);
        }
        else
            get404(req, resp);
    }
    else if(req.method == 'POST'){  
        var data = '';
        if(req.url === "/home"){
            req.on('data', function(chunk) {
              data += chunk;
              console.log("hello post");
            });

            req.on('end', function() {
              // parse the data
              getHome(req, resp)
            });
        }
        else{
            console.log("error");
        }
    }    
    else if(req.method == 'PUT'){
         getSkill(req, resp);
    }

}).listen(port);

All I need is a PUT request on 'ADD SKILL' button in my response. I am not using 'Request' or 'Express' modules. Any suggestions how to go forward with PUT request ?

May be this helps:

 var postData = {name:'someName'}; var options = { hostname: '<HOST_NAME>', // www.examplehost.com port: 80, path: '<PATH>', // /upload_something method: 'PUT', headers: { 'Content-Type': '<CONTENT_TYPE>', // application/x-www-form-urlencoded 'Content-Length': postData.length } }; var req = http.request(options, (res) => { console.log(`STATUS: ${res.statusCode}`); console.log(`HEADERS: ${JSON.stringify(res.headers)}`); res.setEncoding('utf8'); res.on('data', (chunk) => { console.log(`BODY: ${chunk}`); }); res.on('end', () => { console.log('No more data in response.') }) }); 

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM