我正在创建一个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 || '';
};
答案 0 :(得分:1)
如果您没有某种形式的架构,那么您打算如何阅读数据?
如果您计划将数据放入数据库中,然后实际读取该数据,则需要一个模式。即使使用花哨的“无模式”NoSQL数据库,您仍然需要某种方式来理解“无架构”的数据!=“无架构”。
如果你看一下各种Javascript DB框架,有很多包装器可以强制执行某种模式:Mongoose for MongoDB,Geddy JS有一个通用的“Model”类型。即使没有静态类型,您也需要某种形式的工具来了解您正在获取的对象中的内容。
我一直在改变我的想法,为我的模型定义属性
C#对“属性”有一个非常具体的定义。从这个意义上说,你可能不想要“属性”,但你可能做想要“字段”。
由于javascript如此动态,感觉有点脏,我真的不确定原因。
作为具有MS背景的用户,您可能需要考虑Microsoft的TypeScript。它实际上有一个NPM包,并提供基本类型,将编译成常规Javascript。