net
You can use node:net ↗ to create a direct connection to servers via a TCP sockets
with net.Socket ↗.
This makes it possible to connect to databases such as MySQL ↗, PostgreSQL ↗,
Redis ↗, or MongoDB ↗. Though for production use, we recommend that you connect
using TLS, which can be done with the cloudflare:sockets
module, or prefereably by using Hyperdrive, which includes
connection pooling
and query caching.
These functions use connect functionality from the built-in cloudflare:sockets module.
import net from "node:net";
const exampleIP = "127.0.0.1";
export default { async fetch(req) { const socket = new net.Socket(); socket.connect(4000, exampleIP, function () { console.log("Connected"); });
socket.write("Hello, Server!"); socket.end();
return new Response("Wrote to server", { status: 200 }); },};import net from "node:net";
const exampleIP = "127.0.0.1";
export default { async fetch(req): Promise<Response> { const socket = new net.Socket(); socket.connect(4000, exampleIP, function () { console.log("Connected"); });
socket.write("Hello, Server!"); socket.end();
return new Response("Wrote to server", { status: 200 }); },} satisfies ExportedHandler;Additionally, other APIs such as net.BlockList ↗
and net.SocketAddress ↗ are available.
Note that the net.Server ↗ class is not supported by Workers.
The full node:net API is documented in the Node.js documentation for node:net ↗.