[英]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.