Click here to Skip to main content
15,851,510 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
im creating an api for school project using node, typescript and moongose and i have a question about this:.

I have an agregate that have, as agregate root, the Entity "Path".

This path have some simple fields like name or whatever and an array ( or list) of "PathNodes"

PathNodes is an Entity inside this agregate but dont have an id ( teacher said that, whatever it means)

Path nodes have 2 Nodes, one inicial node and one final node -Node is the Entity of another agregate and is already implemented.

My question is how should i implement both the domain class of Path and PathNode and also how to implement the Schema for this ( i know i could use the schema as "domain" classes but teacher dont want that).

What im thinking is somehting like this

                                ---PathNode.ts ---
  import Node from '...' 

 Class PathNode 
 private Inicialnode : Node
 private FinalNode : Node  
constructor(nodei:Node, nodef:Node   ){ 
this.Inicialnode =nodei; this.FinalNode  =nodef;

                                ---PathNodeSchema.js --- Shcema{  
nodei: { type: Schema.Types.ObjectId, ref: 'Node' },
 nodef: { type: Schema.Types.ObjectId, ref: 'Node' },} }    

                                    ---Path.ts ---  

import PathNode from '...' 

 Class Path  

private name: String 
 private PathNode: PathNode[]; 

   constructor(obj :PathDTO   ){ =;
 for(pathNodes of obj.pathnodes){ 
this.pathNodesTemp = new PathNode(pathNodes ); 

                             ---PathSchema.js --- Shcema{  name: String ,
 PathNode:[ { type: Schema.Types.ObjectId, ref: 'PathNodes' }],  } 

What do you think of this? im also confused becouse i have a repository for path, but not for pathnodes as path is the agregate root. Inside the repository if i do PathSchema.create(path) will it create the path document along with the pathnodes? Or do i need to PathNodeSchema.create(pathNode) first?

as Path have a list of PathNodes, maybe PathNode should reference the Path it belongs to instead of Path referencing many PathNodes? If yes how should i implement it?

Thank you

What I have tried:

The only thing i tried so far was to implement the even more simple Node agregate, using typedi and onion architecture in this project
Updated 6-Nov-20 1:25am

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900