Skip to content

Commit 5198119

Browse files
committed
update example to use fetch handler
1 parent bc74bec commit 5198119

File tree

1 file changed

+44
-34
lines changed
  • src/content/docs/workers/runtime-apis/nodejs

1 file changed

+44
-34
lines changed

src/content/docs/workers/runtime-apis/nodejs/https.mdx

Lines changed: 44 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ pcx_content_type: configuration
33
title: https
44
---
55

6-
import { Render } from "~/components"
6+
import { Render } from "~/components";
77

88
<Render file="nodejs-compat-howto" />
99

@@ -18,11 +18,11 @@ implementation of `Agent` in Workers is a stub implementation that does not supp
1818
pooling or keep-alive.
1919

2020
```js
21-
import { Agent } from 'node:https';
22-
import { strictEqual } from 'node:assert';
21+
import { Agent } from "node:https";
22+
import { strictEqual } from "node:assert";
2323

2424
const agent = new Agent();
25-
strictEqual(agent.protocol, 'https:');
25+
strictEqual(agent.protocol, "https:");
2626
```
2727

2828
## get
@@ -32,20 +32,25 @@ An implementation of the Node.js [`https.get'](https://nodejs.org/docs/latest/ap
3232
The [`get`](https://nodejs.org/docs/latest/api/https.html#httpsgetoptions-callback) method performs a GET request to the specified URL and invokes the callback with the response. This is a convenience method that simplifies making HTTPS GET requests without manually configuring request options.
3333

3434
```js
35-
import { get } from 'node:https';
36-
import { strictEqual, ok } from 'node:assert';
37-
38-
get('https://developers.cloudflare.com/robots.txt', (res) => {
39-
strictEqual(res.statusCode, 200);
40-
let data = '';
41-
res.setEncoding('utf8');
42-
res.on('data', (chunk) => {
43-
data += chunk;
44-
});
45-
res.on('end', () => {
46-
ok(data.includes('User-agent'));
47-
});
48-
});
35+
import { get } from "node:https";
36+
37+
export default {
38+
async fetch() {
39+
const { promise, resolve, reject } = Promise.withResolvers();
40+
get("http://example.com", (res) => {
41+
let data = "";
42+
res.setEncoding("utf8");
43+
res.on("data", (chunk) => {
44+
data += chunk;
45+
});
46+
res.on("error", reject);
47+
res.on("end", () => {
48+
resolve(new Response(data));
49+
});
50+
}).on("error", reject);
51+
return promise;
52+
},
53+
};
4954
```
5055

5156
## request
@@ -55,27 +60,32 @@ An implementation of the Node.js [`https.request'](https://nodejs.org/docs/lates
5560
The [`request`](https://nodejs.org/docs/latest/api/https.html#httpsrequestoptions-callback) method creates an HTTPS request with customizable options like method, headers, and body. It provides full control over the request configuration and returns a [writable stream](https://developers.cloudflare.com/workers/runtime-apis/streams/writablestream/) for sending request data.
5661

5762
Request method accepts all options from `http.request` with some differences in default values:
63+
5864
- `protocol`: default `https:`
5965
- `port`: default `443`
6066
- `agent`: default `https.globalAgent`
6167

6268
```js
63-
import { request } from 'node:https';
64-
import { strictEqual, ok } from 'node:assert';
65-
66-
const req = request('https://developers.cloudflare.com/robots.txt', {
67-
method: 'GET',
68-
}, (res) => {
69-
strictEqual(res.statusCode, 200);
70-
let data = '';
71-
res.setEncoding('utf8');
72-
res.on('data', (chunk) => {
73-
data += chunk;
74-
});
75-
res.on('end', () => {
76-
ok(data.includes('User-agent'));
77-
});
78-
});
69+
import { request } from "node:https";
70+
import { strictEqual, ok } from "node:assert";
71+
72+
const req = request(
73+
"https://developers.cloudflare.com/robots.txt",
74+
{
75+
method: "GET",
76+
},
77+
(res) => {
78+
strictEqual(res.statusCode, 200);
79+
let data = "";
80+
res.setEncoding("utf8");
81+
res.on("data", (chunk) => {
82+
data += chunk;
83+
});
84+
res.on("end", () => {
85+
ok(data.includes("User-agent"));
86+
});
87+
},
88+
);
7989
req.end();
8090
```
8191

0 commit comments

Comments
 (0)