[英]how to get a request in node repl
我已經開始構建一個 typescript 庫(打算在服務器端使用),現在我正在嘗試使用節點 repl 來玩弄我的代碼,看看在某些情況下會發生什么......我已經構建並需要該文件,但現在我遇到了一個問題:我有一個 function 需要一個 http 請求(來自 express.js 的請求類型),我想嘗試在 repl 中運行它,為它提供一個我之前從瀏覽器發出的請求的副本。 這可行嗎? 我想也許我可以通過以下方式做到這一點:
我不確定我是否了解您的用例,但您可以嘗試以下方法:
在某些臨時文件夾類型中:
npm install "request-promise"
然后從同一個臨時文件夾中,輸入 REPL 並鍵入:
(async () => {const response = await require("request-promise").get("https://cnn.com"); console.log(response)})()
此示例用於get
,但可以輕松更改為其他 HTTP 方法。
我找到了一種相當簡單的方法來做我想做的事......它涉及快速設置一個基本的快速服務器(按照本教程設置):
mkdir scratch && cd scratch && npm init
(選擇除入口點 app.js 之外的默認值)
npm i express
創建一個包含以下內容的 app.js ( vi app.js
):
var express = require('express');
var app = express();
var circ = {};
circ.circ = circ;
var cache = [];
app.get('/', function (req, res) {
res.send(JSON.stringify(req, (key, value) => {
if (typeof value === 'object' && value !== null) {
// Duplicate reference found, discard key
if (cache.includes(value)) return;
// Store value in our collection
cache.push(value);
}
return value;
}));
});
app.listen(3000, function () {
console.log('Example app listening on port 3000!');
});
(請參閱JSON.stringify自定義JSON.stringify
和JSON.stringify
的第二個參數的答案)。 您可以選擇使用flatted代替,這是我后來發現的,而且肯定更好。
現在執行以下操作:
node app.js
運行應用程序curl
request, but change the url it's posted to to 127.0.0.1:3000
(eg change curl 'example.com' \...etc
to curl '127.0.0.1:3000' \...etc
您現在應該在標准 output 作為 JSON object 上獲得該請求,並且它采用 express 通常處理的格式。 是的,現在,pipe 將其放入剪貼板(可能是xclip -selection c
在 Linux 上)或者甚至更好,將其重定向到文件。
...
第2步 -? 第 3 步 - 利潤:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.