Javascript 比较Node.js中的两个文件的好方法是什么

Javascript 比较Node.js中的两个文件的好方法是什么,javascript,node.js,file,fs,Javascript,Node.js,File,Fs,我正在尝试构建一个简单的自动分级器,用于检查两个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

我正在尝试构建一个简单的自动分级器,用于检查两个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..');
});
这是上述练习的解决方案:

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中检查练习文件是否与解决方案匹配的好方法吗?完全匹配这些文件可能不是一个好主意,因为它们之间可能有空格,但仍然是一个有效的解决方案

提前谢谢


Andrea

您可以使用读取每个文件内容,然后使用软件包比较它们

安装字符串相似性:

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


检查代码本身而不是生成的结果不是“简单的自动分级器”。您可以使用不同的代码和不同的AST-s编写多个程序,以完成相同的任务。改为测试功能。