Что было бы хорошим решением для сравнения двух файлов в Node.js - PullRequest
0 голосов
/ 11 ноября 2019

Я пытаюсь создать простой автогрейдер, который проверяет наличие двух файлов соответствия javascript.

Это пример возможного упражнения:

var http = require('http');
http.createServer((req, res) => {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World!');
}).listen(8000,  () => {
console.log('Node server is running..');
});

Это решениеУпражнение выше:

var http = require('http');
var dt = require('./myfirstmodule');

http.createServer((req, res) => {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.write("The date and time are currently: " + dt.myDateTime());
  res.end('Hello World!');
}).listen(8000,  () => {
console.log('Node server is running..');
});

Знаете ли вы хорошее решение в Node, чтобы проверить, соответствует ли файл упражнения решению? Точное сопоставление файлов может быть не очень хорошей идеей, поскольку между ними могут быть пробелы, и они все равно будут правильным решением.

Заранее спасибо.

Андреа

1 Ответ

0 голосов
/ 11 ноября 2019

Вы можете прочитать содержимое каждого файла, используя fs.readFileSync(), а затем использовать пакет сходство строк для сравнения между ними.

Установить сходство строк:

npm install string-similarity --save

Тогда в вашем коде:

const fs = require('fs');
const stringSimilarity = require('string-similarity');

let exercise = fs.readFileSync('path/to/file/exercise.js');
let solution = fs.readFileSync('path/to/file/solution.js');

var similarity = stringSimilarity.compareTwoStrings(exercise, solution);
console.log(similarity); //Returns a fraction between 0 and 1

...