當我們在進行將數據提交到某個網頁時,需要將提交數據保存下來
1.提交數據
2.獲得數據
3.保存數據
先看提交數據:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <link rel="stylesheet" type="text/css" href="../resource/css1.css"> <title>submit</title> </head> <body> <p class="submit"><form action="/add" method="/add"> <p>First name: <input type="text" name="name" /></p> <p>Last name: <input type="text" name="text" /></p> <input type="submit" value="Submit" /> </form></p> </body> </html>
我們在輸入框中輸入文字等,需要將這里輸入的東西提交到/add頁面上,此時可以看到數據出現在了req.url里面
我們需要獲取到里面的數據,在url模塊里面有url.parse()方法
如圖,按照圖中的方法,就可以找到對應的值
要使用url.parse()需要先引用url模塊
var url=require('url');
然后獲得url對象
//通過url模塊。調用url.parse()方法解析用戶請求的url(req,url) var urlObj=url.parse(req.url,true);
console.log(urlObj);
之后根據需要將有用的內容儲存
else if(req.url.startsWith('/add')&&req.method==='get'){ res.render(path.join(__dirname,'views','add.html')); //1.獲取用戶get提交過來的數據 //urlObj.query.title //urlObj.query.url //urlObj.query.text //2.把用戶提交的新聞數據保存到data.json文件中 var list=[]; list.push(urlObj.query); //把list數組寫入data.json //fs.writeFile數據只能傳字符串或buffer,可以用JSON.stringify來轉換 fs.writeFile(path.join(__dirname,'data','data.json'),JSON.stringify(list),function(err){ if(err){ throw err; } console.log('ok'); }); //3.跳轉到新聞列表頁 }
然后在data.json文件中獲得想要的數據
服務器通過設置響應頭開使瀏覽器重定向
else if(req.url.startsWith('/add')&&req.method==='get'){ // res.render(path.join(__dirname,'views','add.html')); //1.獲取用戶get提交過來的數據 //urlObj.query.title //urlObj.query.url //urlObj.query.text //2.把用戶提交的新聞數據保存到data.json文件中 var list=[]; list.push(urlObj.query); //把list數組寫入data.json //fs.writeFile數據只能傳字符串或buffer,可以用JSON.stringify來轉換 fs.writeFile(path.join(__dirname,'data','data.json'),JSON.stringify(list),function(err){ if(err){ throw err; } console.log('ok'); }); //3.跳轉到新聞列表頁 //設置響應報文頭,通過響應報文頭告訴瀏覽器,執行一次頁面跳轉操作 //重定向 res.statusCode=302;//跳轉 res.statusMessage='Found'; res.setHeader('Location','/'); res.end(); }