在JavaScript中定义模型属性-是否有必要

Defining model properties in JavaScript - is there a need

本文关键字:是否 属性 JavaScript 定义 模型      更新时间:2023-09-26

我正在创建一个Node.js API,我一直在改变主意,为我的模型定义属性或不定义属性。

来自.Net和c#的我习惯于定义类的属性,但这是一种有意义的静态定义语言。javascript如此动态,感觉有点脏,我真的不知道为什么。

这是漫长的一周,所以我可能只是把事情复杂化了,应该继续下去,但任何见解都会很棒。

具有某些属性的简单示例

var Post = exports = module.exports = function(postData){
    var post = postData || {};
    //Set Properties
    this.id = post.id || 0;
    this.message = post.message || '';
};

如果您没有某种形式的模式,那么您计划如何读取数据?

如果您计划将数据放入数据库,然后实际读取该数据,则需要一个模式。即使使用了花哨的"无模式"NoSQL数据库,您仍然需要某种方式来理解返回的"无架构"数据!="无架构"。

如果你看看各种Javascript DB框架,有很多包装器可以强制执行某种模式:Mongoose for MongoDB,Geddy JS有一个通用的"Model"类型。即使没有静态输入,你也希望某种形式的工具知道你要返回的对象中有什么。

关于为模型定义属性,我一直在改变主意

C#对"属性"有一个非常具体的定义。从这个意义上说,你可能不想要"属性",但你可能想要"字段"。

javascript如此动态,感觉有点脏,我真的不知道为什么。

作为MS背景的用户,您可能需要考虑Microsoft的TypeScript。它实际上有一个NPM包,并提供将编译成常规Javascript的基本类型。