Javascript Node.js:从其他文件调用代码
我的主文件中有很多模式,我想将它们删除到另一个文件中 我该怎么做 例如:Javascript Node.js:从其他文件调用代码,javascript,node.js,coffeescript,Javascript,Node.js,Coffeescript,我的主文件中有很多模式,我想将它们删除到另一个文件中 我该怎么做 例如: EntrySchema = new Schema aa : String record : String status : String CreditSchema = new Schema credit : Number minute : Number date : Date #belongs_to subdomain 使用预定义的导出对象。以下内容适用于.c
EntrySchema = new Schema
aa : String
record : String
status : String
CreditSchema = new Schema
credit : Number
minute : Number
date : Date
#belongs_to subdomain
使用预定义的导出对象。以下内容适用于
.coffee
和.js
文件:
将以下内容放入模式中。coffee:
exports.EntrySchema = new Schema
aa : String
record : String
status : String
exports.CreditSchema = new Schema
credit : Number
minute : Number
date : Date
#belongs_to subdomain
然后在main.js中,您可以执行以下操作:
var s = require('./schemas')
var foo = s.CreditSchema
s成为id为/schemas
的模块的导出
对象/schemas.coffee
也可以,但不建议这样做,因为以后您可以将schemas.coffee
重构为schemas.js
或
<代码>模式/<代码>子文件夹,甚至到C++中实现的DLL。
一种常见做法是对模块名称和导出对象的引用使用相同的名称:
var schemas = require('./schemas')
另一种常见做法是对每次导出都使用foo
和exports.foo
:
EntrySchema = exports.EntrySchema = new Schema
aa : String
record : String
status : String
CreditSchema = exports.CreditSchema = new Schema
credit : Number
minute : Number
date : Date
#belongs_to subdomain
因此,您仍然可以在schemas.coffee
中使用较短的EntrySchema
名称,而不必在schemas.coffee中的任何地方使用exports.EntrySchema
这两种做法都很方便,但既不需要也不强制执行
这个导出工具是CommonJS模块规范的一个实现。有关标准和Node.JS中的具体实现,请参见,直到有这样一个嵌入文档:exports.AccountSchema=new Schema phone:String users:[UserSchema]custones:[custoneschema]credit:NumberIt返回:ReferenceError:UserSchema未定义修改答案。另一种解决方案是只导出顶层架构。