Supertest multiple request.field 数组在服务器上未定义
Supertest multiple request.field array is undefined on the server
我正在用 supertest 编写单元测试来测试我的服务器。但是我的 body 字段之一包含 json objects 'arrives' 未定义的数组。
代码:
//declaration of variable
tags = [{name: 'tag1'},{name: 'tag2'},{name: 'tag3'}];
//actual post
agent.post('/pictures')
.set('Connection', 'keep alive')
.set('Content-Type', 'application/x-www-form-urlencoded')
.field('picTitle', 'Picture Title')
.field('tags', tags)
.attach('file', __dirname + '/img/noel.jpg')
.end(function(pictureSaveErr, pictureSaveRes) {
//do stuff
}
所以问题是服务器上的 req.body.tags 未定义。字符串没有问题。 angular 前端的实际实现工作完美,所以问题不在服务器上。
希望有人能帮助我,在此先感谢...
似乎是什么 field
方法 does not accept arrays. Because it uses form-data 模块。
你应该尝试这样的事情:
agent.post('/pictures')
.set('Connection', 'keep alive')
.set('Content-Type', 'application/x-www-form-urlencoded')
.field('picTitle', 'Picture Title')
.field('tags[0][name]', tags[0].name)
.field('tags[1][name]', tags[1].name)
.field('tags[2][name]', tags[2].name)
.attach('file', __dirname + '/img/noel.jpg')
.end(function(pictureSaveErr, pictureSaveRes) {
//do stuff
}
我正在用 supertest 编写单元测试来测试我的服务器。但是我的 body 字段之一包含 json objects 'arrives' 未定义的数组。
代码:
//declaration of variable
tags = [{name: 'tag1'},{name: 'tag2'},{name: 'tag3'}];
//actual post
agent.post('/pictures')
.set('Connection', 'keep alive')
.set('Content-Type', 'application/x-www-form-urlencoded')
.field('picTitle', 'Picture Title')
.field('tags', tags)
.attach('file', __dirname + '/img/noel.jpg')
.end(function(pictureSaveErr, pictureSaveRes) {
//do stuff
}
所以问题是服务器上的 req.body.tags 未定义。字符串没有问题。 angular 前端的实际实现工作完美,所以问题不在服务器上。
希望有人能帮助我,在此先感谢...
似乎是什么 field
方法 does not accept arrays. Because it uses form-data 模块。
你应该尝试这样的事情:
agent.post('/pictures')
.set('Connection', 'keep alive')
.set('Content-Type', 'application/x-www-form-urlencoded')
.field('picTitle', 'Picture Title')
.field('tags[0][name]', tags[0].name)
.field('tags[1][name]', tags[1].name)
.field('tags[2][name]', tags[2].name)
.attach('file', __dirname + '/img/noel.jpg')
.end(function(pictureSaveErr, pictureSaveRes) {
//do stuff
}