节点http模块-拦截http.request函数时获取请求正文

时间:2019-12-11 17:05:07

标签: javascript node.js http

我正在编写一个内部记录器,该记录器通过重写http方法来拦截Node的request模块。
这是我到目前为止的内容:

const http = require('http');

const oldHttpRequest = http.request;
http.request = (options, callback) => {
    const newCallback = (res) => {
        // Do logging logic here

        return callback(res);
    }

    return oldHttpRequest(options, newCallback);
};

optionsres对象中,我可以检索到我需要的所有内容(方法,路径,请求标头,响应标头,响应正文等)。
除了传出的请求正文之外的所有内容。

我想念什么?

1 个答案:

答案 0 :(得分:0)

设法做到这一点,如果有人感兴趣的话,发布解决方案。

我最后也不得不修改写方法:

<?xml version="1.0" encoding="UTF-8"?>
<ivysettings>
    <settings defaultResolver="default" />
    <resolvers>
        <chain name="default">
            <!-- Public Maven repository -->
            <ibiblio name="public" m2compatible="true" />

            <!-- Vaadin Add-on repository -->
            <ibiblio name="vaadin-addons" usepoms="true" m2compatible="true"
                root="http://maven.vaadin.com/vaadin-addons" />

            <!-- Vaadin snapshots repository -->
            <ibiblio name="vaadin-snapshots" usepoms="true" m2compatible="true"
                root="https://oss.sonatype.org/content/repositories/vaadin-snapshots" />
            <!-- Repository used for Vaadin modified smartsprites library -->
            <dual name="custom-smartsprites">
                <filesystem name="smartsprites-ivy">
                    <ivy pattern="${basedir}/ivymodule/[module]-ivy-[revision].xml" />
                </filesystem>
                <url name="smartsprites-artifact">
                    <artifact
                        pattern="http://dev.vaadin.com/svn/versions/6.8/build/smartsprites/lib/[artifact](-[revision]).[ext]" />
                </url>
            </dual>
        </chain>
    </resolvers>
    <modules>
        <!-- Vaadin patched SmartSprites -->
        <module organisation="com.carrotsearch" name="smartsprites"
            revision="0.2.3-itmill" resolver="custom-smartsprites" />
    </modules>
</ivysettings>