libook 最近的时间轴更新
libook

libook

.... . ._.. ._.. ___
🏢  yangcong345.com / Full Stack Developer
V2EX 第 78834 号会员,加入于 2014-10-27 17:14:14 +08:00
今日活跃度排名 11649
不参与一切辩论、圣战,无意义。
如果你觉得我我说得好,点一下“感谢”我将荣幸至极;
如果你觉得我说的不好,仅一句嘲讽是没有人获益的;
什么?触碰到了你的信仰?那么请务必当我放屁~
正常回复 IP 被封了,求解封
反馈  •  libook  •  2020-08-25 10:28:56 AM  •  最后回复来自 libook
3
在 WSL 中运行 GUI(如 IDEA)
分享创造  •  libook  •  2020-08-26 13:46:51 PM  •  最后回复来自 libook
17
电子设备如何消毒?
硬件  •  libook  •  2020-04-29 23:13:30 PM  •  最后回复来自 ssqtctc
9
支付授权目录设置为第三方 URL 有哪些风险
程序员  •  libook  •  2019-03-28 17:38:30 PM  •  最后回复来自 airyland
1
自己写的实时演算插件
Hexo  •  libook  •  2019-02-18 17:26:07 PM  •  最后回复来自 libook
3
[培训向]如何给学员讲明白一种算法不合适?
程序员  •  libook  •  2019-01-31 12:24:39 PM  •  最后回复来自 libook
13
[北京] 有没有想学习 Node 服务端开发的实习生?
酷工作  •  libook  •  2018-11-21 13:18:08 PM  •  最后回复来自 defunct9
1
[北京] 有想学习 Node.js 服务端开发的实习生吗?
酷工作  •  libook  •  2018-11-16 10:18:49 AM  •  最后回复来自 wangsahala
17
今天可能要发布 Node10 的 LTS?
  •  1   
    Node.js  •  libook  •  2018-10-31 08:45:44 AM  •  最后回复来自 Acexihua
    9
    libook 最近回复了
    1 天前
    回复了 ntop 创建的主题 分享创造 又又又写了一个文件传输助手
    考虑用 WebSocket 做实时传输?这样服务器不需要存数据,文件数据流式从一端传入,经由服务器传给另一端。
    1 天前
    回复了 wiirhan 创建的主题 git rebase 还是 merge?
    @securityCoding #49 这里讨论的问题是 merge 和 rebase,发生在打 tag 之前,似乎和 tag 关系不大。
    1 天前
    回复了 wiirhan 创建的主题 git rebase 还是 merge?
    @securityCoding #47 不是每个 feature 一个 tag 吧,总会有合并操作的,打 tag 也是在合并完的分支上打 tag 。
    1 天前
    回复了 wiirhan 创建的主题 git rebase 还是 merge?
    我只知道当需要撤回合并操作的时候,特别是公司项目上线计划临时调整的时候,直接 revert merge 提交很方便,不知道 rebase 怎么处理,懂的可以分享一下。

    个人觉得版本控制系统的核心价值是体现整个版本变更历史,使用 rebase 仅会留下提交,无法区分是合并操作还是提交操作,所以“merge 产生无意义的提交”可能连 Linus 本人都不赞同。

    整理分支是另一码事,希望整理得多么“干净”取决于能接受丢失多少历史信息,就好比服务器每周五备份,周三的时候你想恢复周二的数据,对不起没有,只能恢复到上周五。

    你可以不在一个分支上体现任何 merge 记录,但也同时放弃了利用 merge 记录做审计或操作的能力,如果综合权衡是适合当前项目管理的方案的话,也是可以的。
    1 天前
    回复了 AnjingJingan 创建的主题 Node.js node.js axios 回调问题
    回复没法格式化代码,你自己贴到编辑器里格式化一下吧。

    ```
    const http = require('http');

    const server = http.createServer((request, response) => {
    console.log('收到浏览器请求流。');

    // 构造发出请求的 URL
    const url = new URL('http://httpbin.org/post');
    // 添加 Search,也就是 Query string
    url.search = new URLSearchParams({
    'type': "1",
    });

    // 向 httpbin 发送请求流
    const req = http.request(
    url,
    {
    "method": "POST",
    "headers": {
    "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8",
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36",
    },
    },
    res => {
    console.log('收到了 httpbin 返回流');

    console.log('将 httpbin 返回流对接到浏览器的返回流。');
    res.pipe(response);
    },
    );

    // 结束 httpbin 请求流
    req.end();
    });

    server.listen(3000);
    ```

    题主这个需求有很多种方式可以实现,最简单的是流( Stream )。

    浏览器向这个 node 服务发送请求的时候,node 服务会接收到一个来自浏览器的请求流,然后 node 服务向 httpbin 发送一个请求流,httpbin 返回一个返回流,然后像接水管管道一样把 httpbin 的返回流接在 node 服务即将返回给浏览器的返回流,浏览器最终收到了数据。

    用流的好处就是不需要自己重建返回给浏览器的返回结构,直接复用上游的返回结构;另一方面 node 服务不需要缓存 httpbin 的整个返回数据,用 async/await 的方案通常会把 httpbin 返回的数据整个存在 node 服务的内存里,小量数据还好,如果是下载大文件的话有撑爆内存的风险。

    http 模块的文档在这:
    https://nodejs.org/api/http.html

    http.createServer 里的回调函数的两个参数类型:
    https://nodejs.org/api/http.html#http_class_http_incomingmessage
    https://nodejs.org/api/http.html#http_class_http_serverresponse

    你可以看到这两个类型都是“Extends: <Stream>”即继承自 Stream,Stream 的文档在这里:
    https://nodejs.org/api/stream.html

    node 服务返回给浏览器,以及 node 服务发请求给 httpbin,都是属于可写流( Writable Stream ),可写流在写完之后必须调用 end 来结束流。
    httpbin 返回给 node 服务的流是可读流( Readable Stream ),你可以把可读流用管道方法( pipe )对接到一个可写流上。
    type VS class
    做软路由的话,我见到比较多的是用 NanoPi R2S 或 R4S,看油管上测评说做梯子性能挺好的。
    进软路由的坑,里面都是你想要的东西。

    游戏用的话也可以买加速器,有的路由器是内置一些加速器的客户端的,可以透明代理,比如华硕路由器内置 UU 加速,买个会员就能用了。
    关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1984 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 14:49 · PVG 22:49 · LAX 07:49 · JFK 10:49
    ♥ Do have faith in what you're doing.