nodejs 접미사 이름 판단 제한 코드
function is_filetype(filename, types) {
types = types.split(',');
var pattern = '\.(';
for(var i=0; i<types.length; i++) {
if(0 != i) {
pattern += '|';
}
pattern += types[i].trim();
}
pattern += ')$';
return new RegExp(pattern, 'i').test(filename);
};
// N
if(!is_filetype($('#uploadfile').val(), 'doc,pdf,txt,wps,odf,md,png,gif,jpg')){
can_submit = false; //
$('#uploadfile').val('');
alert(' : ' + constant.RESUME_FILETYPES);
}
// N
백 엔 드 는 악의 적 인 업로드 가 우려 되 어 사용자 가 올 린 파일 을 다시 판단 하 는 것 을 피 할 수 없다.그래서 저 는 python 으로 파일 접 두 사 를 판단 하 는 논 리 를 썼 습 니 다
import re
def is_filetype(filename, types):
types = types.split(',')
pattern = '\.(' + '|'.join([t.strip() for t in types]) + ')$';
return re.search(pattern, filename, re.I) != None
# web request handler
# N
이렇게 반복 되 는 이 유 는 무엇 입 니까?1.전단 은 영원히 믿 을 수 없다.2.전단 과 백 엔 드 는 서로 다른 프로 그래 밍 언어 를 사용한다.이런 번 거 로 움 은 어떤 대 가 를 가 져 올 까?1.업무 논 리 를 수정 하려 면 두 번 반복 해 야 합 니 다.만약 에 갑자기 docx 파일 형식 을 적 게 지원 한 것 을 발견 하면 자바 script 코드 와 python 코드 를 동시에 수정 해 야 합 니 다.2.자바 script 코드 와 python 코드 의 업무 논리 가 일치 하 는 대 가 를 증가 해 야 합 니 다.각각 2 가지 테스트 를 써 야 하 며,유닛 테스트 는 두 배 이상 달 립 니 다.시대:DRYUse nodejs no more DRY !코드 하나,전단 백 엔 드 동시 실행
// constant.js
(function(exports){
exports.RESUME_FILETYPES = 'doc,docx,pdf,txt,wps,odf,md,png,gif,jpg';
})( (function(){
if(typeof exports === 'undefined') {
window.constant = {};
return window.constant;
} else {
return exports;
}
})() );
// util.js
(function(exports){
/**
*
*
* @return {String}
* @api public
*/
String.prototype.trim = function(){
return this.replace(/(^\s*)|(\s*$)/g, "");
};
/**
*
*
* @param {String}filename
* @param {String}types, , , doc,docx,txt
* @return {Boolean} true or false
* @api public
*/
var is_filetype = exports.is_filetype = function(filename, types) {
types = types.split(',');
var pattern = '\.(';
for(var i=0; i<types.length; i++) {
if(0 != i) {
pattern += '|';
}
pattern += types[i].trim();
}
pattern += ')$';
return new RegExp(pattern, 'i').test(filename);
};
})( (function(){
if(typeof exports === 'undefined') {
window.util = {};
return window.util;
} else {
return exports;
}
})() );
전단
<script src="/js/util.js"></script>
<script src="/js/constant.js"></script>
// N
if(!util.is_filetype($('#uploadfile').val(), constant.RESUME_FILETYPES)){
can_submit = false; //
$('#uploadfile').val('');
alert(' : ' + constant.RESUME_FILETYPES);
}
// N
백 엔 드
var util = require('./public/js/util.js'),
constant = require('./public/js/constant.js');
app.post('/resume/upload/:job_id', function(req, res, next){
req.form.complete(function(err, fields, files){
if(!util.is_filetype(filepath, constant.RESUME_FILETYPES)) {
// , ,
res.send(' : ' + filepath
+ ' , ' + constant.RESUME_FILETYPES + ' ');
return;
}
// save file ...
// N
});
});
wow,지루 하지 않 죠?done 기타 일반적인 필드 상수 정의 문자열 작업 과 같은 유용 한 도구 모듈
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Node.js를 AWS서버에서 사용하는 실습간단한 예제와 함께 AWS에서 Node.js를사용하는 법을 배워보도록 하겠다. 해당 github에 있는 레포지토리로 사용을 할 것이다. 3000번 포트로 Listen되는 예제이고 간단히 GET, POST, DELET...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.