小编Cup*_*k05的帖子

如何使用Mocha和Chai测试上传文件?

我正在尝试用Mocha / Chai测试我的nodejs API 。我创建了一个“ test”文件夹,其中包含File.js,其中包含以下代码:

let chai = require('chai');
let chaiHttp = require('chai-http');

let fs = require('fs');

let should = chai.should();

chai.use(chaiHttp);

var fileName = 'devJoke.png';

describe('/PUT file', () => {
    it('Should PUT a file', (done) => {
        let file = {
            fileName: "devJoke.png",
        }
        chai.request('http://localhost:3000')
            .put('/bucket/user2/files/')
            .set('secret_key', 'user2SecretKey')
            .set('Content-Type', 'application/x-www-form-urlencoded')
            .field('Content-Type', 'multipart/form-data')
            .field('fileName', 'devJoke.png')
            .attach('files', "/Users/stagiaire/Downloads/devJoke.png")
            .send(file)
            .end((err, res) => {
                if (err) {
                    console.log(err)
                } else {

                    res.should.have.status(200);
                    res.body.should.be.a('object');
                    res.body.should.have.property('data').eql('File Uploaded')
                }
                done();
            })
    }) …
Run Code Online (Sandbox Code Playgroud)

upload unit-testing mocha.js node.js chai

5
推荐指数
0
解决办法
2142
查看次数

在POSTMAN上使用PUT/POST方法上传文件

我正在尝试将带有POSTMAN的文件上传到此网址

http://localhost:3000/bucket/test/files/
Run Code Online (Sandbox Code Playgroud)

并且应该在我的控制器中得到结果:

    put(request, response, args) {
    //HERE IN THE REQUEST.BODY 
    console.log(request.body)

    let fileManager = request.modules.VMFile;
    let mimeTypes = ['image/jpeg', 'image/png', 'image/gif', 'image/x-icon', '  video/mpeg', 'text/html', 'video/x-msvideo', 'application/msword', 'application/pdf', 'application/vnd.ms-powerpoint', 'application/x-rar-compressed'];
    let maxFileSize = 4 * 1024 * 1024;

    fileManager.initUpload(mimeTypes, maxFileSize);

    fileManager.receive((files) => {

        fileManager.forEachFileContent(files, (file, content) => {

            minioClient.putObject(request.body.bucket, request.body.name, content, file.size, file.mimetype, function (err, etag) {
                response.setData("File uploaded").apply();
                return console.log(err, etag)
            })

        });
        fileManager.clearFilesFromTmp(files);
    });
}
Run Code Online (Sandbox Code Playgroud)

在POSTMAN我得到了这个:

邮差

标题上没有任何东西,但我只能PUT(或POST,我试图用POST更改我的路线但同样的问题)名称和存储区字段..我的文件字段没有任何内容..

有什么好主意吗?

javascript request node.js postman

4
推荐指数
1
解决办法
2万
查看次数

我如何检查它是否是12字节的String对象,mongodb中的ObjectID?

我想检查正确的 ObjectID 以继续我的代码。我在 NodeJS 上,我不想收到错误:

错误:传入的参数必须是 12 个字节的单个字符串或 24 个十六进制字符的字符串

实际上我得到了这些测试:

if (!user.id || !user.id.match("/^[0-9a-fA-f]{24}$") || !typeof(user.id) === 'string') {
        console.log("user id is required !")
        return callback("user id is required !")
    }
Run Code Online (Sandbox Code Playgroud)

对于 24 个十六进制字符的字符串,我得到了这个正则表达式:

!user.id.match("/^[0-9a-fA-f]{24}$")
Run Code Online (Sandbox Code Playgroud)

我正在搜索检查它是否是一个 12 字节的字符串:

!typeof(user.id) === 'string'
Run Code Online (Sandbox Code Playgroud)

我应该如何添加12字节的验证?

有什么想法吗?

javascript regex string mongodb node.js

2
推荐指数
1
解决办法
4518
查看次数