簡體   English   中英

如何根據請求解析原始數據?

[英]How do I parse raw data on request?

我有一個表單,用於使用Ajax將post data提交到數據庫,如下所示:

function markAsRead(id) {
    console.log('Triggered');
    $.ajax({
        type: 'POST',
        url: '/admin/assessment.html',
        data: id,
        success: function(data) {
            if (data.error) {
                console.log('We had an error.');
            } else if (data.success) {
                console.log('Marker updated.');
            }
        }
    })
}

(function() {
    var element = document.getElementsByName('markAsRead');
    for(var i = 0; i < element.length; i += 1) {
        element[i].addEventListener('click', function(e)  { e.preventDefault;
            markAsRead(this.getAttribute('data-value'));
        });
    }
})();

我的頁面上有多個錨點,例如:

<a href="#" name="markAsRead" data-value="5135135">Mark As Read</a>

我只是想知道在Node.js方面,我如何解析該數據,我嘗試過:

var id = req.body.markAsRead;

  console.log('Data is ' + id);

但是它只是說不確定的。 關於如何解析此請求數據的任何信息都將非常有用。 謝謝! Anchor不在任何形式內)

首先,您應該使用命名參數或比字符串更結構化的內容從客戶端發布數據。

$.ajax({
    type: 'POST',
    url: '/admin/assessment.html',
    data: { id: id },
    success: function(data) {
        if (data.error) {
            console.log('We had an error.');
        } else if (data.success) {
            console.log('Marker updated.');
        }
    }
})

其次,當您在節點側解析req.body時,您正在解析作為請求正文發送的字符串,其中包括您的參數{id:'somevalue'} 您可以自己解析它,但是我猜您在支持中間件堆棧的節點的http.Server實現之上使用了express或其他抽象之類的東西。 我建議使用connect bodyParser()中間件,它將將req.body字符串轉換為具有已發布屬性的對象。 這將使您在節點中的請求處理程序中可以使用req.body.id。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM