在JavaScript中定义模型属性-是否有必要
Defining model properties in JavaScript - is there a need
我正在创建一个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的基本类型。
相关文章:
- 是否可以从父类访问子类的属性
- d3.js圆的半径是否可以由样式属性指定
- 检查对象的所有属性是否未定义
- 消隐数组元素是否生成自己的属性
- 是否可以使用CSS分配数据属性
- 检查来自不同数组的两个元素的一个属性是否相等
- 是否有任何内置方法可以更改JavaScript对象'的属性设置为某个值
- 正在检查对象javascript中是否存在嵌套属性
- 正在检查属性的属性是否存在
- html元素是否具有内置的属性
- jQuery检查CSS宽度是否大于0,然后添加CSS属性
- 是否可以在 HTML 标记中插入您的属性
- 在 Forerunner 数据库集合中创建主键时,key 属性是否可以位于集合对象的对象内部
- 在HTML5中是否可以有多个数据{名称}属性
- 变量/对象是否按值传递,为什么我不能在 javascript 中使用变量更改对象的属性
- 是否有脚本/代码可以一次将链接属性添加到多个链接
- 使用 Chai - 如何检查对象属性是否包含 DOM 元素
- Ember 1.0 预发行版支持属性是否已更改
- 是否可以在 Polymer 中的
节点上使用自定义属性以获得漂亮的 API - HTML 中是否存在属性节点