Node.js 如何在 Typescript 中设置引用和导入外部模块作为顶级对象
How to set up references and import external modules as top-level objects in Typescript in Node.js
所以这是一个Typescript文件结构和命名问题。我刚刚开始学习 Typescript 类 和模块,我有几个关于如何跨多个文件构建模型逻辑的问题。
说我有一个小休息 api 写在 node.js 与用户和照片模型,这是一个简单的 api 让用户注册和上传照片。
假设这个文件结构:
-app
-models
-user.js
-photo.js
-controller.js
在我的控制器中,引用模型时使用引用路径声明还是外部模块更好?这是否与仅使用标准 node.js require 语句重叠?
如果我使用 import 语句将模型作为外部模块加载,我可以更改下面的示例以将导出移动到顶层,这样我就可以新建一个 User( ) 而不是 models.User().
例如,模型,anotherModel
似乎有点多余 - 我不想将所有模型合并到一个文件中。
controller.js
import models = require('./models/user');
import anotherModel = require('./models/photo');
var newUser = new models.User();
var newMoment = new anotherModel.Moment();
user.js
export class User {
name:string
}
photo.js
export class Photo {
url:string
}
您可以创建一个 model / index.ts
并重新导出该文件中的所有模型以便于使用。这是传统的 node.js 范例。
所以这是一个Typescript文件结构和命名问题。我刚刚开始学习 Typescript 类 和模块,我有几个关于如何跨多个文件构建模型逻辑的问题。
说我有一个小休息 api 写在 node.js 与用户和照片模型,这是一个简单的 api 让用户注册和上传照片。
假设这个文件结构:
-app
-models
-user.js
-photo.js
-controller.js
在我的控制器中,引用模型时使用引用路径声明还是外部模块更好?这是否与仅使用标准 node.js require 语句重叠?
如果我使用 import 语句将模型作为外部模块加载,我可以更改下面的示例以将导出移动到顶层,这样我就可以新建一个 User( ) 而不是 models.User().
例如,模型,anotherModel
似乎有点多余 - 我不想将所有模型合并到一个文件中。
controller.js
import models = require('./models/user');
import anotherModel = require('./models/photo');
var newUser = new models.User();
var newMoment = new anotherModel.Moment();
user.js
export class User {
name:string
}
photo.js
export class Photo {
url:string
}
您可以创建一个 model / index.ts
并重新导出该文件中的所有模型以便于使用。这是传统的 node.js 范例。