我想用Node.js來服務一些JavaScript文件,並且無論出於什麼原因文件在傳輸過程中被切斷。代碼:Node.js在通過HTTPS服務時切斷文件
httpsServer = http.createServer(function(req, res) {
var path = url.parse(req.url).pathname;
if (path[path.length - 1] == '/') {
path += 'index.html';
}
fs.readFile(root + path, function(err, data){
if (err) return send404(res);
res.writeHead(200, {
'Content-Type': getMimeType(getExtension(path)),
'Content-Length': data.length});
res.end(data);
});
}),
var privateKey = fs.readFileSync(settings.PRIVATE_KEY).toString();
var certificate = fs.readFileSync(settings.CERTIFICATE).toString();
var credentials = crypto.createCredentials({key: privateKey, cert: certificate});
httpsServer.setSecure(credentials);
httpsServer.listen(settings.HTTPS_PORT);
的文件http://github.com/LearnBoost/Socket.IO/raw/master/socket.io.js和http://code.jquery.com/jquery-1.4.2.min.js。第一個正好是32KB,第二個正好是16KB。這不會發生在HTTP上,只發生在HTTPS上,並且只發生在網絡上(例如:不是從本地主機發出)。
任何幫助將非常感激。
這應該被標記爲正確的答案。那麼,這實際上是:Buffer.byteLength(data,'utf8')。請注意,「語語語」.length == 3,而Buffer.byteLength(「語語語」,'utf8')== 9,這種情況下的正確答案。 – 2011-04-11 16:55:42
謝謝菲爾,監督一個! – tedeh 2011-04-12 11:14:28