jsdom реализует только интерфейс DOM, но контекст рисования не является частью этого интерфейса.
Чтобы получить то, что вам нужно, потребуется реализовать 2D-контекст:
http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#canvas-context-2d
Полагаю, что можно было бы сделать в JS, используя гигантский массив ... но это было бы ужасно медленно. Так что либо кто-то пойдет дальше и напишет реализацию C / C ++ для Node, либо вам не повезло, банкомат.
Полагаю, вам нужно внутреннее состояние для инициализации новых клиентов, верно?
В этом случае вы можете просто поместить действия рисования в стек и отправить их клиенту, а затем клиент выталкивает стек, пока не достигнет текущего состояния чертежа.
EDIT
Хорошо, очевидно, что-то на GitHubs закончилось:
http://github.com/joshthecoder/crayon
Но не похоже, что это в любом случае готово к работе, код очень скудный и есть только тест для создания поверхности. МОЖЕТ БЫТЬ, что компоновщик совершает здесь какое-то волшебство и выставляет материал cairo на узел, но даже тогда это только представило бы функции cairo, которые они сами, и все равно придется реализовать спецификацию 2DContext поверх этого.