我只是想创建一个 node 服务器,输出给定URL的HTTP状态.

当我试图用res.write刷新响应时,我得到了一个错误:throw new TypeError("第一个参数必须是字符串或缓冲区");

但如果我把它们换成控制台.日志(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()可能会被调用.try 在回调中关闭请求.

Node.js相关问答推荐

可以删除一个mongodb catch块

Windows上使用ES6+的OpenAPI规范的Express服务器不接受嵌套路由'

运行JEST测试时找不到模块&q;错误

在Node.js下使用PostgreSQL客户端聚合PostgreSQL中的用户定义类型

JsonwebToken过期后如何注销和清除cookie?

使用单个 MongoDB 查询更新多个元素

在全局对象上声明的函数

如何使用Next.js/Node/TS正确地上传至S3

express cors request.body formData显示undefined

Axios 响应循环通过函数只返回第一个映射对象的结果

如何避免在 mongodb 聚合中查找重复结果?

带有事件网格的 Azure 函数在没有 ngrok 的情况下在本地运行

NestJS 共享模块的问题

无法通过谷歌Electron 表格 api( node js)中的服务帐户访问写入

使用 $in 查询时,如何获取 mongoDB 中每个唯一 ID 的 n 个文档?

如何在 Nest.js 中使用查询参数?

Node.js + Express + Handlebars.js + 局部视图

使 pm2 登录到控制台

如何为 node.js 服务器分配域名?

tsconfig.json 中模块类型的区别