【问题标题】:Node.js: calling pure Javascript functionsNode.js:调用纯 Javascript 函数
【发布时间】:2013-01-05 11:19:20
【问题描述】:

我正在使用 Nodejs 编写一些示例程序。我在从 Nodejs 中调用 Javascript 文件时遇到问题。假设我有 3 个 .js 文件:A.js、B.js、C.js。 A.js 是用 Node.js 编写的。 B.js 和 C.js 是用纯 Javascript 编写的。现在我需要从 A.js 调用 B.js 中存在的函数 b()。所以我 eval() B.js 并导出方法 b()。这工作正常。但问题是当我在 B.js 中的函数 b() 调用 C.js 中的函数 c() 时。

B.js:

function b()
{
    console.log('In function b');
    c();
}

C.js:

function c()
{
    console.log('In function c');
}

只是为了补充这个问题。我在 B.js 中有一个 var:var abc,在 B.js 的全局空间中。 在 C.js 中,我可以将其引用为: var a = abc;如何确保我的 C.js 可以访问我的变量 abc?

如何确保解决依赖关系?任何帮助,将不胜感激。谢谢!!!

【问题讨论】:

  • Node 和“纯 JavaScript”有什么区别?
  • pure javascript 是什么意思? Nodejs 纯 javascript,等等。您的意思是这些函数试图访问浏览器的window 对象吗?
  • 由于 NodeJs 在服务器端工作,它遵循一些语法来引用全局变量和函数存在于不同的文件中。请像nodetuts.com一样通过,然后更改您的文件。我希望,如果您完成了具有更多功能的代码,则无需对此进行更多代码更改。在处理现有代码中的原型时给予更多关注。

标签: javascript node.js


【解决方案1】:

您应该在 Node.js 中使用 modules。这很简单,只需阅读文档即可。

B.js

var c = require('./C');

function b() {
    console.log('In function b');
    c();
}

C.js

module.exports = function() {
    console.log('In function c');
}

【讨论】:

  • 我的 B.js 和 C.js 是用 Javascript 而不是 Node.js 编写的。并且 Javascript 不知道 require 和 module.exports
  • 那么你可以使用requirejs.org来代替module.exports和require
  • 你能举个例子解释一下吗?这会很有帮助。谢谢。
  • @user1999645:你能用例子解释一下吗?请参阅我对您的问题的评论。您的问题不完整,除非您告诉我们您要做什么,否则我会否决这个问题。
猜你喜欢
  • 1970-01-01
  • 2019-03-01
  • 2014-02-17
  • 1970-01-01
  • 2016-05-19
  • 2018-01-11
  • 2011-08-06
  • 2018-06-29
相关资源
最近更新 更多