First, we'll locate a node with the topology.GetNodeByPoint function. It's really a wrapper around ST_Intersects or ST_DWithin (when used with a tolerance parameter) functions.
It takes three arguments. The first is a topology name, the second is a point geometry (which must have the same SRID as topology), and the third is a tolerance (in the units of topology's SRID). The tolerance can be set to zero, in which case the point geometry must precisely match the node location or 0 will be returned.
For example, let's locate the node ID of a Czech-German-Polish tripoint near the town of Zittau:
SELECT topology.GetNodeByPoint('my_topology','SRID=4326;POINT(14.82337 50.87062)',0.02);
getnodebypoint
----------------
1598
When we set the tolerance too low, and leave the point geometry with five-digit precision, the function will return 0 instead:
SELECT topology.GetNodeByPoint('my_topology','SRID=4326;POINT(14.82337 50.87062)',0.002);
getnodebypoint
----------------
0
However, when the tolerance is set too high, there will be an exception, as this function can return only one node ID and no sorting by distance is done:
SELECT topology.GetNodeByPoint('my_topology','SRID=4326;POINT(14.82337 50.87062)',1);
ERROR: Two or more nodes found