Node.js cuts off files when serving over HTTPS

后端 未结 5 1402
醉梦人生
醉梦人生 2021-01-03 00:12

I am trying to serve some JavaScript files with Node.js and for whatever reason the files are being cut off in the middle of the transmission. The code:

http         


        
相关标签:
5条回答
  • 2021-01-03 00:27

    have you tried to use built-in HTTPS server? http://nodejs.org/docs/v0.4.11/api/https.html

    0 讨论(0)
  • 2021-01-03 00:28

    I have just seen this too. Same setup - HTTPS, latest node from the git repo.

    One large file (170k) never properly completing sending. I tried to switch from async to synch but it made no difference. Only thing that fixed it so far was making the file smaller. It was a big floppy jpg so it was easy to do. Problem vanished.

    0 讨论(0)
  • 2021-01-03 00:28

    It might be a disconnect between the default encoding for readFile and res.end(). readFile just loads the raw data if you do not specify an encoding whereas end() defaults to utf8. I'm not 100% sure but the raw data from the file could return a shorter length than the utf8 encoded string that end emits.

    I tried recreating your error and failed so it might be you need to upgrade your version of node. I'm using the latest code from github.

    0 讨论(0)
  • 2021-01-03 00:37

    This problem should be solved in the newest version of Node.js. Can you test it out on v0.4.2?

    0 讨论(0)
  • 2021-01-03 00:46

    Instead of Content-Length: data.length you should use Content-Length: Buffer.byteLength(data, 'utf8') where Bufferis a global object (node 0.3.x) or var Buffer = require('buffer') in node 0.2.x which will save you a lot of hassle and might fix your problem with truncated answers too.

    0 讨论(0)
提交回复
热议问题