Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 有人能帮我在Node.Js中设置一个缓冲区吗?_Javascript_Ipad_Html_Node.js - Fatal编程技术网

Javascript 有人能帮我在Node.Js中设置一个缓冲区吗?

Javascript 有人能帮我在Node.Js中设置一个缓冲区吗?,javascript,ipad,html,node.js,Javascript,Ipad,Html,Node.js,我正在尝试将html5视频文件加载到iPad上。我正在使用node.js。代码如下: return function staticProvider(req, res, next) { if (req.method != 'GET' && req.method != 'HEAD') return next(); var hit, head = req.method == 'HEAD', filena

我正在尝试将html5视频文件加载到iPad上。我正在使用node.js。代码如下:

return function staticProvider(req, res, next) {
        if (req.method != 'GET' && req.method != 'HEAD') return next();

        var hit, 
            head = req.method == 'HEAD',
            filename, url = parseUrl(req.url);

        // Potentially malicious path
        if (~url.pathname.indexOf('..')) {
        console.log("forbidden", url.pathname);
            return forbidden(res);
        }

        // Absolute path
        filename = Path.join(root, queryString.unescape(url.pathname));

        // Index.html support
        if (filename[filename.length - 1] === '/') {
            filename += "index.html";
        }

        // Cache hit
        if (cache && !conditionalGET(req) && (hit = _cache[req.url])) {
            res.writeHead(200, hit.headers);
            res.end(head ? undefined : hit.body);
            return;
        }

        fs.stat(filename, function(err, stat){

            // Pass through for missing files, thow error for other problems
            if (err) {
                return err.errno === process.ENOENT
                    ? next()
                    : next(err);
            } else if (stat.isDirectory()) {
                return next();
            }

            // Serve the file directly using buffers
            function onRead(err, data) {
                if (err) return next(err);

                // Response headers
                var headers = {
                    "Content-Type": mime.lookup(filename),
                    "Content-Length": stat.size,
                    "Last-Modified": stat.mtime.toUTCString(),
                    "Cache-Control": "public max-age=" + (maxAge / 1000),
                    "ETag": etag(stat),
                    "Accept-Ranges": "bytes"
                };

                // Conditional GET
                if (!modified(req, headers)) {
                    return notModified(res, headers);
                }

                res.writeHead(200, headers);
                res.end(head ? undefined : data);

                // Cache support
                if (cache) {
                    _cache[req.url] = {
                        headers: headers,
                        body: data
                    };
                }
            }

            fs.readFile(filename, onRead);
        });
    };
};

我真的不确定我在这里做什么,我需要让它成为流/缓冲区。

这段代码似乎试图实现一个连接中间件来服务静态文件。为此,您是否尝试使用标准连接中间件?以下是一个例子:

var connect = require('connect')
var server = connect.createServer(
    connect.logger()
  , connect.static(__dirname + '/public')
)

我没有完全回答你的问题;刚刚发现您的
~url.pathname.indexOf
很好地使用了
~
操作符。