首页 > 解决方案 > 无法使用 chai 上传文件

问题描述

我正在尝试使用 Chai 测试文件上传。

我有这个html

        <form method="POST" enctype="multipart/form-data" action="/file/upload">
        <input id="file" type="file" name="filename">
        <input id ="submit"type="submit" value="upload">
      </form>

而这个API

let fileStorage = require('../model/FileStorage');
let router = require('express').Router();

router.post('/upload', function(req, res){
let file = req.files.filename;
let filename = file.name;
file.mv('./upload/'+filename, function(err){
    if(err) {
        res.status(500).end("500: Internal server error");}
    else {//insert in db
        fileStorage.create({name: filename})
            .then(doc => res.send({message:"a "+doc}).status(200).end());
    }
});

当我通过 HTML 发送要上传的文件时,此代码有效。

当我去测试时出现问题,因为测试用例返回状态500并且测试失败。

这是测试用例

it('dovrebbe UPPARE il file', function(done){
chai.request(server)
    .post('/file/upload')
    .field('customKey', 'customValue')
    .attach('files', '/Users/francescovicidomini/git/ExampleNodeJS/server/upload/upload.txt', 'upload.txt')
    .end(function(err, res){
        res.should.have.status(200);
        done();
    });    

标签: node.jsmocha.jschai

解决方案


推荐阅读