How to check if two files have the same content?

前端 未结 6 574
说谎
说谎 2021-02-05 10:35

I am using mocha/supertest/should.js to test my Rest Service

GET /files/ returns file as stream.

How can I assert in should.js

6条回答
  •  清酒与你
    2021-02-05 10:53

    I think that you should use non-blocking calls in JavaScript to get a better performance, at least to prevent from blocking other operations:

    Blocking is when the execution of additional JavaScript in the Node.js process must wait until a non-JavaScript operation completes. This happens because the event loop is unable to continue running JavaScript while a blocking operation is occurring.

    In Node.js, JavaScript that exhibits poor performance due to being CPU intensive rather than waiting on a non-JavaScript operation, such as I/O, isn't typically referred to as blocking. Synchronous methods in the Node.js standard library that use libuv are the most commonly used blocking operations. Native modules may also have blocking methods.

    So, I would change the Sync calls with something like the following code. Also, I would use the method equals that Max suggest to compare both files:

    const fs = require('fs')
    
    fs.readFile('file1', (err, data1) => {
        if (err) throw err;
        fs.readFile('file2', (err, data2) => {
            if (err) throw err;
            if (data1.equals(data2)) {
                console.log('EQUAL')
            } else {
                console.log('NON EQUAL')
            }
    
        });
    });
    

    Though for a small and a single script the result would be almost the same

提交回复
热议问题