node——將用戶提交的數據寫入data.json文件


前續

當我們在進行將數據提交到某個網頁時,需要將提交數據保存下來

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM