在 node 中加载和执行外部 js 文件.js访问局部变量?

2022-08-30 03:08:11

在node.js中执行简单类型的命令是否容易/可能?include('./path/to/file')

我想做的就是访问局部变量并运行脚本。人们通常如何组织节点.js项目,这些项目比简单的hello世界更大?(一个功能齐全的动态网站)

例如,我希望有这样的目录:

/models

/views

...等


答案 1

只需执行一个require('./yourfile.js');

将您希望从外部访问的所有变量声明为全局变量。所以不是

var a = "hello"这将是

GLOBAL.a="hello"或者只是

a = "hello"

这显然很糟糕。您不想污染全局范围。相反,建议方法是针对您的函数/变量。export

如果你想要MVC模式,看看Geddy。


答案 2

您需要了解 CommonJS,它是定义模块的模式。您不应该滥用全局范围,这总是一件坏事,相反,您可以使用“导出”令牌,如下所示:

// circle.js

var PI = 3.14; // PI will not be accessible from outside this module

exports.area = function (r) {
  return PI * r * r;
};

exports.circumference = function (r) {
  return 2 * PI * r;
};

以及将使用我们模块的客户端代码:

// client.js

var circle = require('./circle');
console.log( 'The area of a circle of radius 4 is '
           + circle.area(4));

此代码是从节点.js文档 API 中提取的:

http://nodejs.org/docs/v0.3.2/api/modules.html

另外,如果你想使用像Rails或Sinatra这样的东西,我推荐Express(我无法发布URL,在Stack Overflow上感到羞耻!