Usually you would use the Twitch OAuth flow on your website, and then when a user logs in display them the option to have your bot join their channel. When that is clicked your app could add that channel to a list in a database, and then use the join command on your chat connection to join that channel.
If your bot starts growing to hundreds/thousands of channels then you’ll likely want to add an additional check to see how many channels the bot is currently in, and if it’s above a certain number rather than join the new channel on that connection, you can start up a new connection to spread the load.
Whether you want to have 1 NodeJS process that’s handling multiple connections to chat, or multiple processes that each handle one connection, is entirely up to you and the design needs of your app. (A single process approach may be easiest to understand when starting out, and you may not need multiple processes, or even multiple connections, until your bot sees a lot of channels wanting to use it).