2016-05-24 71 views
0

我是nodejs的新手。我正在嘗試使用http請求Get,Post和Put的基本示例。我完成了POST和GET。使用純NodeJs發出請求

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); 

我需要的只是在我的回覆中的「添加技能」按鈕上的PUT請求。 我沒有使用'Request'或'Express'模塊。 任何建議如何與PUT請求一起前進?

+0

[Node.js的使用HTTP PUT請求(可能的重複http://stackoverflow.com/questions/7225045/http-put- request-with-node-js) –

+0

我想用不使用模塊。在上面的解決方案中,它使用請求模塊 –

+0

他們只是使用http模塊作爲你的,順便說一句。它怎麼不起作用? getskill()沒有被調用? –

回答

0

可能這會有所幫助:

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.') 
 
    }) 
 
});