Express에 res.contentType() 메서드가 있지만 경로/파일 (정적 내용 포함)을 기반으로 자동으로 내용 유형을 설정하는 방법을 알고 있습니까?Express : 경로/파일을 기반으로 콘텐츠 유형을 설정 하시겠습니까?
답변
Connect 자동 것이다 명시 적으로 설정하지 않는 한 콘텐트 유형을 설정하십시오. 여기에 해당 코드 조각이 있습니다. 그것은이 당신을 위해 작동하지 않는 경우 사용자 정의 코드가 가능성이 어떻게 든 기본 동작을 방해 한, 당신의 코드를 게시 mime.lookup을 사용하고
// mime type
type = mime.lookup(path);
//<SNIP>....
// header fields
if (!res.getHeader('content-type')) {
var charset = mime.charsets.lookup(type);
res.setHeader('Content-Type', type + (charset ? '; charset=' + charset : ''));
}
을 mime.charsets.lookup.
Express documentation은 파일 이름을 전달하면이를 수행 할 수 있음을 보여줍니다.
[편집]여기 static
라는 상대 디렉토리에서 파일을 제공하는 예입니다 자동으로 파일을 기반으로 콘텐츠 유형이 제공 설정
var filename = 'path/to/image.png';
res.contentType(filename);
// Content-Type is now "image/png"
:
var express = require('express');
var fs = require('fs');
var app = express.createServer();
app.get('/files/:file', function(req, res) {
// Note: should use a stream here, instead of fs.readFile
fs.readFile('./static/' + req.params.file, function(err, data) {
if(err) {
res.send("Oops! Couldn't find that file.");
} else {
// set the content type based on the file
res.contentType(req.params.file);
res.send(data);
}
res.end();
});
});
app.listen(3000);
감사합니다,하지만 난 그냥 경로 또는 파일 이름에 따라 자동으로 원하는 ... 피하고 싶은거야. – mahemoff
나는 내가 이해할 지 모르겠다. 작은 예제를 게시 할 수 있습니까? –
예제를 사용하여 답변을 업데이트했습니다. 내가 아직도 당신이 찾고있는 것을 오해하고 있습니까? –
Express가 연결을 사용하여 연결이 마임을 사용하고, 마임 (노드 사회 공헌 일부 추가 유형) 의 mime.types 및 node.types (기본 MIME 아파치 유형) 파일을 포함 . node_modules에있는 mime 복사본 내에서 이러한 파일 중 하나를 사용자 정의하여 필수 컨텐츠 유형을 추가하거나 Mime에 코드에서로드 할 추가 컨텐츠 유형 또는 .types 파일을 지정할 수있는 API가 있습니다. 당신이 표현 (연결)에 대해 알고있는 마임 유형을 확장 할 경우
또한'require ("mime") .define (...)을 통해 MIME 정의를 추가하는 것이 작동하지 않습니다. 익스프레스 번들 자체 mime 모듈 이겠지요? 번들로 제공되는 mime 모듈에 어떻게 액세스합니까? – panzi
, 당신은
express.static.mime.define({'text/plain': ['md']});
또는
connect.static.mime.define({'text/plain': ['md']});
PS 작업을 수행 할 수 있습니다 마임을 모듈은 현재 https://github.com/broofa/node-mime에 있습니다.
다운로드하십시오(또는 Another link)의 mime.types : 다음
var db_mimes=[],mime_ext=''
$.get('mime.types',{},function(d){
var lines=d.split('\n').filter(function(e){ /* filter which starts with #*/})
lines.forEach(function(line){
mime_ext=line.split(' ')
mime_ext[1].split(' ').forEach(function(ext){
db_mimes.push({e:ext,m:mime_ext[0]})
});
//create object for each line . i.e: {mime:'',extension}
});
});
그런 다음 예를 var fname="myfile.png"
var extension=fname.substr((~-this.lastIndexOf(".") >>> 0) + 2) // get extension from name
var minme=db_mimes.filter(function(el){return el.e === extension})[0]
끊어진 링크로 인해 downvoted했습니다. –
링크를 변경하고 다시 클릭하고 투표 다운을하겠습니다 : https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x/conf/mime.types –
감사 Abdennour –
fo를 다음 cmd를 실행 한 경우 :
npm install xmimetype ;
다음을, 내 코드 :
var xm=require("xmimetype");
xm.mimetypeOf("java");
xm.mimetypeOf("./lib/Person.java");
// -> text/x-java-source
xm.mimetypeOf("docx");
xm.mimetypeOf("./lib/overview.docx");
// -> application/vnd.openxmlformats-officedocument.wordprocessingml.document
자세한 내용은 GIT repository을 확인하십시오.
반대는 볼 수 있습니다 :
xm.extensionsOf("image/jpeg");
// -> [ 'jpeg', 'jpg', 'jpe' ]
- 1. Amazon S3의 콘텐츠 유형을 기반으로 파일 나열
- 2. 이전 활동의 결정을 기반으로 콘텐츠 설정
- 3. 파일 확장명을 기반으로 콘텐츠 유형을 계산하는 자바 스크립트 라이브러리가 있습니까?
- 4. Firefox가 PHP에서 설정 한 콘텐츠 유형을 감지하지 못합니다.
- 5. Castle Windsor는 속성 또는 설정 파일을 기반으로 동적으로 유형을 주입합니다.
- 6. WSE 3.0에서 콘텐츠 유형을 설정하십시오
- 7. 맞춤형 콘텐츠 유형을 배치하는 방법
- 8. WSGI - 콘텐츠 유형을 JSON으로 설정하십시오.
- 9. AMFPHP의 콘텐츠 유형을 cURL로 지정합니다.
- 10. 데이터를 기반으로 필드 유형을 확인하십시오.
- 11. 최대 절전 모드 구성 파일에 HSQLDB 데이터 유형을 설정 하시겠습니까?
- 12. 바닐라 자바 스크립트를 사용하여 AJAX 데이터 유형을 설정 하시겠습니까?
- 13. Rails에서 공개 파일 유형에 대한 콘텐츠 처리를 설정 하시겠습니까?
- 14. 콘텐츠 작성 메뉴에서 새 콘텐츠 유형을 숨기는 방법
- 15. 체크 상자 상태를 기반으로 컨트롤을 사용하지 않도록 설정 하시겠습니까?
- 16. 면도기 엔진을 사용하여 현재보기를 기반으로 특정 CSS 클래스를 설정 하시겠습니까?
- 17. Perl에서 링크의 콘텐츠 유형을 찾으려면 어떻게합니까?
- 18. initWithContentsOfUrl을 사용할 때 콘텐츠 유형을 설정하는 방법
- 19. cakephp에 콘텐츠 유형을 쓰는 방법은 무엇입니까?
- 20. 확장 프로그램의 콘텐츠 유형을 찾는 방법은 무엇입니까?
- 21. Plone에서 예제 콘텐츠 유형을 실행하려면 어떻게해야합니까?
- 22. 콘텐츠 유형을 사용하여 장고에서 FeaturedContent 기능 만들기
- 23. groovy에서 요청시 콘텐츠 유형을 지정하는 방법은 무엇입니까?
- 24. 익명 유형을 기반으로 일반 클래스 인스턴스 만들기
- 25. 게시 유형을 기반으로 한 데이터베이스 구조
- 26. UserControl의 데이터 유형을 기반으로 Window Properties를 설정하십시오.
- 27. lxml을 사용하여 xsd 유형을 기반으로 요소를 찾습니다.
- 28. 클래스 유형을 기반으로 런타임에 Delphi 객체 만들기
- 29. 클래스 및 요소 유형을 기반으로 요소 선택
- 30. URI를 기반으로 콘텐츠 처리를 변경하는 mod_rewrite 도움말
'mime.lookup()'이 이제'mime.getType()'으로 이름이 변경되었습니다. – Pei