[Node] 바이너리 데이터로 이미지를 가져올 때 포함된

3660 단어 Node.js

바이너리 데이터로 그림을 만들 때 삽입된

request를 사용하여 이미지를 얻고 제목에서 이미지 형식의 정보를 얻을 때 빠져들기 때문에 공유합니다.
JavaScript
const request = require('request');

request.get(IMAGE_URL, function(error, response, body) {
  var buffer = new Buffer.from(body);
  console.log(buffer);
});
이렇게 하면 얻을 수 있을 줄 알았는데, 결과는 다음과 같다.

위쪽은 정확한 이미지 데이터이고, 아래는 코드의 실행 결과입니다.
내용이 다르다...(jpg이기 때문에 FF D8부터 시작해야 한다)

해결책


request - npm에 쓰여 있습니다.
encoding - encoding to be used on setEncoding of response data. If null, the body is returned as a Buffer. Anything else (including the default value of undefined) will be passed as the encoding parameter to toString() (meaning this is effectively utf8 by default). (Note: if you expect binary data, you should set encoding: null.)
즉, 바이너리 데이터가 기대되는 경우encodingnull로 설정해야 합니다.
그걸 감안하면...
JavaScript
const request = require('request');

request.get(IMAGE_URL, {encoding: null},function(error, response, body) {
  var buffer = new Buffer.from(body);
  console.log(buffer);
});
상하가 같은 결과를 실행했기 때문에 성공했다.

좋은 웹페이지 즐겨찾기