如何在节点的javascript中运行两个文件?

时间:2014-11-30 01:12:55

标签: javascript node.js testing

我是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的内容?

2 个答案:

答案 0 :(得分:1)

欢迎参加JS派对。

我不确定你在哪里学习,但帮助我和其他许多人的一些资源是superherojs.comnodeschool.ioMDN 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

如果你的代码中没有任何进一步的错误,这应该可以解决问题。