node.js require()在javascript标签中是相等的
运行node.js应用程序提供了一种方法来加载一个包含的js脚本作为一个类/variables。
— app.js —
var mine = require('myClass'); mine.DoSomething();
节点如何知道MyClass是文件“js / MyClassFile.js”?
什么是HTML <script>
等价物?
它使用所谓的模块 。 例如在js/MyClassFile.js
中必须有类似的东西
exports.myClass = function (r) { return {DoSomething: function(){} }; };
什么是HTML的等效?
如果通过HTML,你的意思是浏览器,那么有诸如browserify , systemjs , requirejs等的选项
欲了解更多信息,请查阅通过Addy Osmani 编写Modular JavaScript With AMD,CommonJS&ES Harmony 。
当你需要一个文件在说app.js,你应该使用它的相对path,并使用module.exports导出它。 这就是Node.js如何知道在哪里寻找它。
— app.js —
var mine = require('../myClass') mine.doSomething();
— myClass.js —
var myClass = { } module.exports = myClass;
How does node know that MyClass is the file "js/MyClassFile.js"?
节点决定它的基础上的相对path,所以如果你在js
文件夹,并尝试使用var mine = require('myClass');
那么它意味着那么myClass
是在js
文件夹中
对于HTML相当于你需要使用模块,但你可以在es6
这样做,请注意es6的支持仍然有限
// lib/math.js export function sum (x, y) { return x + y } export var pi = 3.141593 // someApp.js import * as math from "lib/math" console.log("2π = " + math.sum(math.pi, math.pi)) // otherApp.js import { sum, pi } from "lib/math" console.log("2π = " + sum(pi, pi))
否则你可以看看这个如何在另一个JavaScript文件中包含一个JavaScript文件?