Tôi đã tạo API bằng cách sử dụng io.js
và koa.js
.Truy cập phần nội dung thô của yêu cầu trong koa.js
Là phần mềm trung gian phân tích cú pháp nội dung Tôi đang sử dụng koa-body
, lần lượt sử dụng co-body
.
Trên một trong các điểm cuối API của tôi, tôi nhận được yêu cầu POST
và tôi cần quyền truy cập vào phần thô của yêu cầu, vì tôi cần mã hóa để xác minh xem yêu cầu có hợp lệ hay không.
Có cách nào để truy cập vào phần nội dung thô của yêu cầu không? Tôi đã cố gắng sử dụng phần mềm trung gian raw-body
, nhưng nếu tôi sử dụng nó trước khi tôi gọi koa-body
, số co-body
được sử dụng trong các lần ngắt koa-body
. Nếu tôi sử dụng nó sau koa-body
nó không hoạt động.
app.use(function*(next){
let rawRequestBody = yield rawBody(this.req);
this.rawRequestBody = rawRequestBody;
yield next;
});
EDIT:
Tôi nghĩ rằng tôi tìm thấy một workaround, nhưng tôi không biết nếu điều này là giải pháp tốt nhất. Tôi nghĩ rằng câu trả lời @greim có thể là một giải pháp tốt hơn cho vấn đề này.
tôi đã thêm đoạn mã sau trước khi tôi sử dụng koa-body
:
app.use(function *(next) {
let url = this.req.url;
if(this.req.method == 'POST') {
let that = this;
this.req.rawBody = '';
this.req.on('data', function(chunk) {
that.req.rawBody += chunk;
});
}
yield next;
});
sửa chữa của tôi trên đồng cơ thể: https://github.com/cojs/co-body/pull/59 – tangxinfa