我是javascript和Node.js的新手,并且在测试我最近写的一些代码时遇到了问题。我正在尝试使用Node.js测试在名为“compareCrowe.js”的文件中编写的代码和“testCrowe.js”。
以下是testCrowe.js的内容:
var compareCrowe = required['./compareCrowe'];
console.log('begin test');
var connection = {Type:1, Label:"label", linkTo:null};
var table1 = {name:"table1", body:"description1", out:[connection]};
var table2 = {name:"table2", body:"description2", out:null};
connection.linkTo = table2;
var crowe = [table1, table2];
var result = compareCrowe.compareCrowesFoot(crowe, crowe);
console.log(result.feedback);
其中函数“compareCrowesFoot”在compareCrowe.js中定义。从我在Ubuntu虚拟机上的控制台运行:
node compareCrowe.js testCrowe.js
但是,没有打印任何内容。没有任何错误或警告或解释。它甚至没有打印我放在testCrowe.js顶部的“开始测试”行。如果我运行命令:
node testCrowe.js
它抱怨compareCrowesFoot未定义。如何测试compareCrowe.js的内容?
答案 0 :(得分:1)
欢迎参加JS派对。
我不确定你在哪里学习,但帮助我和其他许多人的一些资源是superherojs.com,nodeschool.io,MDN developer docs,{{ 3}}和Youtube(认真)。
Node.js的基本思想是它使用Node.js API docs(可重用代码块)运行,这是modules的组成部分。然后,这些可以包含在其他模块中,并在您的应用程序中的任何其他位置使用。
因此,对于一个基本示例,假设你有 compareCrowe.js ,为了使其可以包含/可重用于另一个文件,你可以编写如下内容:
module.exports = function() {
var compareCrowesFoot = function(crowe1, crowe2) { /* compare crows feet and return something here */ }
return { compareCrowesFoot: compareCrowesFoot };
// return an object with a property of whatever you want to access it as , and the value as your function name
// e.g. - you could return { compare: compareCrowesFoot };
}
然后在 testCrowe.js 中你可能需要这样的compareCrowe:
var compareCrowe = require("./compareCrowe");
/* your code here... */
var result = compareCrowe.compareCrowesFoot(crowe1, crowe2);
// if your returned object was { compare: compareCrowesFoot };
// this would be compareCrowe.compare(crowe1, crowe1);
然后,要运行测试,您可以从命令行运行node testCrowe.js
。
答案 1 :(得分:0)
在你的情况下,似乎你的语法有点搞砸了。它应该更像是:
var compareCrowe = require('./compareCrowe.js');
这会使您compareCrowe.js
中导出的任何方法(例如compareCrowe.compareCrowesFoot
功能)可用于testCrowe.js
。
然后,在您的终端中,您将运行以下命令:
node testCrowe.js
如果你的代码中没有任何进一步的错误,这应该可以解决问题。