我只是试图创建一个输出给定URL的HTTP状态的节点服务器。
当我尝试用res.write刷新响应时,收到错误消息:throw new TypeError(’第一个参数必须是字符串或Buffer’);
但是,如果我用console.log替换它们,一切都很好(但是我需要将它们写入浏览器而不是控制台)。
该代码是
var server = http.createServer(function (req, res) { res.writeHead(200, {"Content-Type": "text/plain"}); request({ uri: 'http://www.google.com', method: 'GET', maxRedirects:3 }, function(error, response, body) { if (!error) { res.write(response.statusCode); } else { //response.end(error); res.write(error); } }); res.end(); }); server.listen(9999);
我相信我应该在某个地方添加一个回调,但是很困惑,我们将提供任何帮助。
请求采用回调方法,它是异步的!所以我假设,在执行回调时,res.end()可能会调用它。尝试在回调中关闭请求。
res.end()