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

时间:2013-06-28 15:10:20

标签: javascript node.js

我正在创建一个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 || '';
};

1 个答案:

答案 0 :(得分:1)

如果您没有某种形式的架构,那么您打算如何阅读数据?

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

如果你看一下各种Javascript DB框架,有很多包装器可以强制执行某种模式:Mongoose for MongoDB,Geddy JS有一个通用的“Model”类型。即使没有静态类型,您也需要某种形式的工具来了解您正在获取的对象中的内容。

  

我一直在改变我的想法,为我的模型定义属性

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

  

由于javascript如此动态,感觉有点脏,我真的不确定原因。

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