  Code reuse is an important part of software development. The adoption of code
reuse practices is especially common among Node.js developers. The Node.js
package manager, NPM, indexes over 1 Million packages and developers often seek
out packages to solve programming tasks. Due to the vast number of packages,
selecting the right package is difficult and time consuming. With the goal of
improving productivity of developers that heavily reuse code through
third-party packages, we present Node Code Query (NCQ), a Read-Eval-Print-Loop
environment that allows developers to 1) search for NPM packages using natural
language queries, 2) search for code snippets related to those packages, 3)
automatically correct errors in these code snippets, 4) quickly setup new
environments for testing those snippets, and 5) transition between search and
editing modes. In two user studies with a total of 20 participants, we find
that participants begin programming faster and conclude tasks faster with NCQ
than with baseline approaches, and that they like, among other features, the
search for code snippets and packages. Our results suggest that NCQ makes
Node.js developers more efficient in reusing code.
