在 Node.js 中,我们可以使用内置的 http
模块来发起 HTTP 请求。发起 HTTP 请求通常用于获取数据,比如向一个 API 接口请求数据。
发起 GET 请求
我们可以使用 http.get()
方法来发起一个简单的 GET 请求。这个方法返回一个可写流(Writable Stream),因此可以通过 on('data')
和 on('end')
事件监听来处理返回的数据。
-- -------------------- ---- ------- ----- ---- - ---------------- ------------------------------ ----- -- - --- ---- - --- -------------- ------- -- - ---- -- ------ --- ------------- -- -- - ------------------ --- -------------- ----- -- - ------------------------- ---
上面的代码会向 http://example.com
发送一个 GET 请求,并在请求结束后将返回的数据输出到控制台。
发起 POST 请求
与 GET 请求不同,POST 请求需要在请求头中设置 Content-Type 和其他数据。我们可以使用 http.request()
方法来发起 POST 请求,并通过 write()
方法向请求流中写入数据。
-- -------------------- ---- ------- ----- ---- - ---------------- ----- ----------- - ----------------------- ----- ---- - ----------------------- ----- -------- ---- --- ------ ------------------- --- ----- ------- - - --------- -------------- ----- --- ----- ---------- ------- ------- -------- - --------------- ------------------------------------ ----------------- ----------------------- - -- ----- --- - --------------------- ----- -- - --- ---- - --- -------------- ------- -- - ---- -- ------ --- ------------- -- -- - ------------------ --- -------------- ----- -- - ------------------------- --- ---------------- ----------
上面的代码会向 http://example.com/submit
发送一个 POST 请求,请求头中包含 Content-Type
和 Content-Length
,请求体中包含 name
、age
和 email
等数据。
发起 HTTPS 请求
如果要向一个 HTTPS 站点发起请求,我们可以使用 https
模块而不是 http
模块。其他部分与发送 HTTP 请求相同。
-- -------------------- ---- ------- ----- ----- - ----------------- -------------------------------- ----- -- - --- ---- - --- -------------- ------- -- - ---- -- ------ --- ------------- -- -- - ------------------ --- -------------- ----- -- - ------------------------- ---
上面的代码会向 https://example.com
发送一个 GET 请求。
使用第三方库
除了使用内置的 http
和 https
模块,我们还可以使用一些第三方库来发起 HTTP 请求。其中一些库包括 axios
、node-fetch
、request
等。这些第三方库功能更加强大,而且更容易使用。
比如,使用 axios
发起一个 GET 请求非常简单:
-- -------------------- ---- ------- ----- ----- - ----------------- ------------------------------- ----------- -- - ---------------------- -- ------------ -- - ------------------------- ---
使用 axios
发起 POST 请求也很简单:
-- -------------------- ---- ------- ----- ----- - ----------------- ----- ---- - - ----- -------- ---- --- ------ ------------------- -- --------------------------------------- ----- ----------- -- - ---------------------- -- ------------ -- - ------------------------- ---
上面的代码会向 http://example.com/submit
发送一个 POST 请求,请求体中包含 name
、age
和 email
等数据。
总结
在 Node.js 中,我们可以使用内置的 http
和 https
模块来发起 HTTP 请求,也可以使用一些第三方库来简化操作。无论使用什么方法,都要注意请求头、请求体和响应的处理。通过以上方法,你可以方便地获取数据,并将其用于各种前端应用。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6496c71448841e98943fe010