为什么浏览器没有输出?

时间:2014-11-21 01:26:49

标签: node.js

这是我的代码:

var http = require('http')

http.createServer(function (req, res) {
    res.writeHead(200, {
        "Content-Type": "json"
    });
    fs.readdir('.', function (error, files) {
        if (error)
            res.end(util.format(error))

        files.forEach(function (file) {
                fs.stat(file, function (erro, stats) {
                    console.log(JSON.stringify(stats))
                    res.write(JSON.stringify(stats))
                })
            })
    })
}).listen(3000);
console.log("server is running!")

当我访问http://127.0.0.1:3000/时,没有输出,但控制台输出是:

{"dev":0,"mode":16822,"nlink":1,"uid":0,"gid":0,"rdev":0,"ino":0,"size":0,"atime":"2014-11-20T13:36:19.000Z","mtime":"2014-11-20T13:36:19.000Z","ctime":"2014-11-20T13:31:53.000Z"}

{"dev":0,"mode":33206,"nlink":1,"uid":0,"gid":0,"rdev":0,"ino":0,"size":11,"atime":"2014-11-20T13:56:21.000Z","mtime":"2014-11-20T13:56:21.000Z","ctime":"2014-11-20T13:56:21.000Z"}

{"dev":0,"mode":33206,"nlink":1,"uid":0,"gid":0,"rdev":0,"ino":0,"size":844,"atime":"2014-11-20T14:24:04.000Z","mtime":"2014-11-20T14:24:04.000Z","ctime":"2014-11-20T13:32:19.000Z"}

{"dev":0,"mode":16822,"nlink":1,"uid":0,"gid":0,"rdev":0,"ino":0,"size":0,"atime":"2014-11-20T14:03:56.000Z","mtime":"2014-11-20T14:03:56.000Z","ctime":"2014-11-20T13:56:21.000Z"}

1 个答案:

答案 0 :(得分:2)

完成res.end()来电后,您需要致电res.write

http.createServer(function (req, res) {
    res.writeHead(200, {
        "Content-Type": "json"
    });
    fs.readdir('.', function (error, files) {
        if (error)
            res.end(util.format(error))

        var filesLeft = files.length;
        files.forEach(function (file) {
                fs.stat(file, function (erro, stats) {
                    console.log(JSON.stringify(stats))
                    res.write(JSON.stringify(stats))
                    // Keep track of how many files' fs.stat calls are left
                    if (--filesLeft === 0) {
                        res.end();
                    }
                })
            })
    })
}).listen(3000);