我有简单的Node.js HTTPS服务器
const https = require('https');
const fs = require('fs');
const config = {
key: fs.readFileSync('cert/server-key.pem'),
cert: fs.readFileSync('cert/server-crt.pem'),
ca: fs.readFileSync('cert/ca-crt.pem'),
};
const server = https.createServer(config, ((req, res) => {
console.log('Got request');
res.end();
}));
server.listen(3333);
Run Code Online (Sandbox Code Playgroud)
我curl在嵌入式系统上使用.
# curl -V
curl 7.52.1 (arm-unknown-linux-gnu) libcurl/7.52.1 wolfSSL/3.9.8
Protocols: file ftp ftps http https smtp smtps telnet tftp
Features: IPv6 Largefile SSL UnixSockets
Run Code Online (Sandbox Code Playgroud)
当我使用其他版本10的Node.js时 - 一切都运行良好.
在Node.js v8.2.1上运行的HTTPS服务器
# curl -k -v "https://10.43.11.128:3333/"
* Trying 10.43.11.128...
* TCP_NODELAY set
* Connected …Run Code Online (Sandbox Code Playgroud) 我使用拦截器根据每个请求的HTTP响应在显示屏上显示错误消息。
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
const customReq = request.clone({
//headers: request.headers.set('app-language', 'en')
});
return next
.handle(customReq).pipe(
tap((ev: HttpEvent<any>) => {
if (ev instanceof HttpResponse) {
// processing request
}
}),
catchError(response => {
if (response instanceof HttpErrorResponse) {
switch (response.status) {
case 0:
// server API connection error show
break;
case 403:
// error Token Invalid and Redirect to logout
break;
case 401:
// error Token Invalid and Redirect to logout
break;
case 502:
// Bad gateway error …Run Code Online (Sandbox Code Playgroud) 想要改变点击时图标的颜色。默认情况下,如果项目已收藏,则图标为红色,而其他图标为默认颜色。
如果用户点击图标将其设为收藏或不收藏,我想在更新后更改颜色。
new ListTile(
trailing: InkWell(
child: Icon(Icons.share),
),
leading: InkWell(
onTap: () {
snapshot.data[index].isFavorite == 0
? makeFavorite(snapshot.data[index].id)
: makeUnfavorite(
snapshot.data[index].id);
},
child: snapshot.data[index].isFavorite == 1
? Icon(
Icons.favorite,
color: Colors.red,
)
: Icon(Icons.favorite)),
title: new Text(snapshot.data[index].body,
style: new TextStyle(
fontWeight: FontWeight.bold, fontSize: 14.0)),
),
Run Code Online (Sandbox Code Playgroud) 动机:使用节点将大约 10GB 到 50GB 的文件从客户端传输到服务器
问题:消耗大量内存有时达到 6GB 左右并且系统挂起
我想要的是:我的代码不应使用超过 200mb 的 ram..
我在做什么:当内存使用量达到 200 mb 时,我暂停流媒体
预期:当 RAM 使用量达到 200 mb 时,我将暂停流数据,并在使用量下降时恢复流数据。
发生了什么:当使用量超过 200 MB 时我会暂停,但它不会恢复,因为即使脚本暂停,RAM 使用量也不会下降。
客户端.js
var net = require('net'),
fs = require('fs'),
path = require('path');
socket = new net.Socket();
socket.connect(6000, 127.0.0.1);
socket.on('connect',function(){
// I am reading around 10 gb of file in chunks
var readStream = fs.createReadStream("File Name", {highWaterMark: 16384});
// Checking ram usage every second to ensure it does not …Run Code Online (Sandbox Code Playgroud)