카테고리 없음

Node.js-40.JavaScript-객체-반복~Node.js-48. API와 CreateServer

DuckCow 2021. 8. 22. 13:57

Node.js-40.JavaScript-객체-반복
var roles ={
'hey':'world',
'apple':'pizza',
'bear':'good'
}

for(var name in roles){
    console.log('object => ', name,'value => ',roles[name]);
}

Node.js-41.JavaScript-객체-값으로서 함수

var f= function(){
    console.log(1+1);
    console.log(1+2);
}
console.log(f);
f();

var a= [f];
a[0]();

var o={
    func:f
}

o.func();
함수 그 자체가 (변수의) 값이 될 수 있다. 

Node.js-42.JavaScript-객체-데이터와 처리 방법을 담는 그릇으로서 객체
함수는 값이고, 객체는 그 값을 담는 그릇이다.

var q={
    v1:'v1',
    v2:'v2',
    f1:function(){
        console.log(this.v1);
    },
    f2:function(){
        console.log(this.v2);
    }

}
q.f1();
q.f2();


var q의 이름이 무엇으로 바뀌어도 this.v1 을 통해, 자신의 객체속 v1 을 호출함으로 수정 및 관리가 편리해진다.

Node.js-45-모듈의 활용
module.exports={
}

Node.js-46.App 제작-입력정보에 대한 보안
입력받을 때 ,
fs.readdir('./data',function(error,filelist){
          var filteredId = path.parse(querydata.id).base;
        fs.readFile(`data/${filteredId}`,'utf8',(err,description) =>{


삭제 시, 
request.on('end',function(){
        var qs =require('querystring'); 
        var post= qs.parse(body);
        var id= post.id;
        var filteredId = path.parse(id).base;
        fs.unlink(`data/${filteredId}`,function(error){
          response.writeHead(302,{Location: `/`});
          response.end();
        })
../password.js 로 id 입력받아도, base인 password.js 로 filteredID 가 들어가, password.js 파일을 읽지 않는다.

Node.js-47.1.App제작-출력정보에 대한 보안


<script>
location.href="https://opentutorials.org/course/3332/21149";
</script>

해당 본문의 내용을 description 으로 create 할 때, 해당 창 클릭시 항상 위 주소로 이동하는 문제 발생.

&lt;script&gt;
location.href="https://opentutorials.org/course/3332/21149";
&lt;/script&gt;

(html entities 참고)

변환시켜주면, 본문을 그대로 보여주고, 주소는 해당 주소로 이동하지 않음.

Node.js-47.2.App제작-출력정보에 대한 보안

Node.js-47.3.App제작-출력정보에 대한 보안
var sanitizedTitle =sanitizeHtml(title);

sanitize-html 모듈 : 입력받은 정보를 출력할 때, script ,h1 등을 다 쳐냄.

h1 의 경우, allowsTag 를 통해, 적용 가능.
var sanitizedDescription=sanitizeHtml(description,{
            allowsTags:['h1']