为什么我的 Node.js ServerResponse **wrapped by Proxy** 没有响应?
Why my Node.js ServerResponse **wrapped by Proxy** doesn't respond?
这一定是一个非常具体和奇怪的问题。
这很明显,
import http from 'http';
http.createServer(function(_req, res) {
res.end('yeah!');
}).listen(3000);
但这不是。服务器未响应请求。
import http from 'http';
http.createServer(function(_req, res) {
const pres = new Proxy(res, {});
pres.end('yeah!');
}).listen(3000);
出于某种原因我需要包装 ServerResponse...我正在调试但没有任何线索。 这样的代理对象与原始对象有什么不同? 符号? 属性定义?如果有人知道这件事,请post。如有任何信息,我们将不胜感激。
我明白了。函数上下文 (this
) 应该是原始的 ServerResponse 本身。
import http from 'http';
http.createServer(function(_req, res) {
const pres = new Proxy(res, {
get(t, p, r) {
const v = Reflect.get(t, p, r);
if (typeof v === 'function') return v.bind(t);
return v;
},
});
pres.end('yeah!');
}).listen(3000);
哒.
这一定是一个非常具体和奇怪的问题。
这很明显,
import http from 'http';
http.createServer(function(_req, res) {
res.end('yeah!');
}).listen(3000);
但这不是。服务器未响应请求。
import http from 'http';
http.createServer(function(_req, res) {
const pres = new Proxy(res, {});
pres.end('yeah!');
}).listen(3000);
出于某种原因我需要包装 ServerResponse...我正在调试但没有任何线索。 这样的代理对象与原始对象有什么不同? 符号? 属性定义?如果有人知道这件事,请post。如有任何信息,我们将不胜感激。
我明白了。函数上下文 (this
) 应该是原始的 ServerResponse 本身。
import http from 'http';
http.createServer(function(_req, res) {
const pres = new Proxy(res, {
get(t, p, r) {
const v = Reflect.get(t, p, r);
if (typeof v === 'function') return v.bind(t);
return v;
},
});
pres.end('yeah!');
}).listen(3000);
哒.