creating tcp server for http server (node.js)

first of all I'm really sorry for asking such stupid question but i'm really new to programming and have no idea what i'm doing. I'm learning by reading books and tutorials.

so my question is

when do i actually need to create tcp server? I know tcp server is connection-oriented transport protocol used for reliable delivery of packets, but like for example, when i'm making a simple web app for chat, I'm using http and it seeems working fine without creating tcp server.. but that wouldn't make sense because http actually runs over tcp right?

I started learning server-side programming about a month ago.. and i'm just really lost.

ps. i'm using node.js and socket.io

Express might suit your needs though I don't fully understand your problem. TCP is a protocol

var express = require('express');
var app = express();
app.get('/hello', function(req, res){
   res.send('Hello World');
 });
var server = app.listen(3000, function() {
    console.log('Listening on port %d', server.address().port);
});