The nodes of a surface define its points of self-intersection, and are special cases of more general singularities.  For example, the Cayley cubic has four nodes.

The full set of singularities of a surface can be characterized by finding all points where the partial derivatives are all zero.  However, not all singularities are nodes.  Some are cusps or other kinds of singularities.  For example, the Cayley cubic has five singularities, four of which occur at the nodes of the internal elliptope and the fifth which occurs at zero and is apparently not a node.  

Is there a simple way to check which singularities are surface nodes?  Or, more interestingly, is there a way to compute the full set of nodes of a surface directly?