How do I interact with Bitcoin Core from NodeJS?
I highly recommend looking at Bcoin. It is a full node implementation used by Purse.io but also includes a rich API for interacting with the Node and wallets. All of it running in NodeJS. Documentation is sparse but getting better.

http://bcoin.io/

Otherwise, bitcoinjs https://github.com/bitcoinjs/bitcoinjs-lib is a Javascript library that lets you parse, create, and sign transactions. But it doesn't handle the hard part of querying the network, caching information about transactions and wallets, or picking inputs and calculating fees when you want to spend.