Node.js-40.JavaScript-객체-반복~Node.js-48. API와 CreateServer
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 할 때, 해당 창 클릭시 항상 위 주소로 이동하는 문제 발생.
<script>
location.href="https://opentutorials.org/course/3332/21149";
</script>
(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']