Chai POST发送二进制文件

时间:2018-05-03 13:12:54

标签: node.js express mocha chai

我需要测试文件上传,而不使用多部分表单数据。

it('Create node', () => {
    return chai.request(server)
        .post('/api/sensornodes')
        .set('Content-Type', 'application/json')
        .send(fs.readFileSync('test/manifest/sensor_nodes.json'))
        .then((res) => {
            expect(res.status).to.eql(204);
        });
});

此测试调用以下端点,我使用body-parser来解析请求

public create(req: Request, res: Response, next: NextFunction) {
    console.log("req body", req.body)
}

但是当我执行测试时,req.body是一个像这样的对象,而不是我期待

{ 
    type: 'Buffer',
    data:
       [ 123,
         10,
         32,
         32,
         32,
         ...
       ]
}

当我通过邮递员调用该终点时,一切正常,在req.body我有.json的内容

我哪里错了?

1 个答案:

答案 0 :(得分:0)

我错过了编码类型

我已经修好了

.send(fs.readFileSync('test/manifest/sensor_nodes.json', 'utf8'))