목록Node.js/Express (31)
jm_p_op
1. nginx을 통해 서버가 데이터를 받는다면, IP는 local로 받는다2.nginx설정에서 IP를 그대로 끌고 가주도록 설정한다 proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host;3. server.js에서 proxy 데이터를 받도록 수정app.set('truest proxy',true)
User.hasOne(models.UserInfo, { foreignKey:"userId", sourceKey:"userId"});UserInfo.belongsTo(models.User,{ foreignKey:"userId", targetKey:"userId"});

migrate을 production/test 등 조건으로 바꿔서 하는 방법npx sequelize db:migrate --env ${environment} run server에서는 index.js에서 process.env.NODE_ENV사용하고 있다즉, node server에서 NODE_ENV설정을 하면 자동으로 해결된다.
특정 단어,id, 장소 등으로 잡게되면 진짜 말도 안되는 상황이 되서 변동이 필요할때, 바꿀수 없게 된다.편하게 auto increment로 칼럼 하나 만들고, 하고자 하는것을 unique값으로 잡아두면 된다
목표기본 데이터는 유지하기 상태User.state = Status.stateIdStatus(stateId- primekey,stateName)변경User.state = Status.stateNameStatus(stateName- primekey ) 해야할일primekey 변경 (방법을 못찾음)user.state=>user.stateIdStatus=>beforeStatusStatus(신규생성)Status seed 생성user.state(신규생성)Constraint 삭제,생성( fk 연결된것 삭제,생성)state 원래 데이터 유지하도록 변경쓸모없는 데이터 삭제 await queryInterface.renameColumn('Users','state','stateId') //state테이블명 변경 ..
참고자료-https://github.com/expressjs/multer/blob/master/doc/README-ko.md설정storage - 저장path설정filename - 파일 이름시간을 넣어 독립적으로 제작destination - 폴더명DB별 나눠주는것이 좋음limit - 파일 종류, 사이즈 등사용.single( 'input-key' )req.file에 저장.array( 'input-key' ).fields( 'input-key' )req.files에 저장req.file.path가 데이터 저장된 path임으로 중요에러 핸들링- multerFunction(req,res(err)=>{ fun1})에러 발생시 err이 존재에러 없어도 fun1실행multerFunction을 await시킨후 req.fi..

모든 api요청의 권한이 있음으로defult값은 all로 잡자.DB에 저장후 cache로 뽑아서 관리권한이 All 혹은 겹치는것이 있다면, true값 반환async function PermissionAPICheck(api,user_perm){ perms=await permissionAPI.get(api) if (!perms){ return undefined } if (perms[0]=='All'){ return true } for (i in user_perm){ if (perms.includes(user_perm[i])){ return true } } return false}권한이 true이면..

url/메서드 app.use('a')a로 시작하는 모든 메서드에 작용app.all('a')api가 a인 모든 메서드 실행all.get/pest/...('a')api가 a이고 해당 메서드만 실행 같은 url에 여러개 있을 작동방식코드상 먼저 정의된것 실행next()를 안하면 다음정의된것이 실행 안된다.get/all/use에서의 우선순위는 없음app.use('/',(req, res, next)=>{ //f1 next()},f2,f3....)app.use('/',g1)f1실행, f2실행 .... g1 실행 (next()를 쓰지 않는다면 그 뒤에 함수는 작동안함)이를 통해 전반적인 api에서 실행할것을 제작가능 (예를들면 인증, 기록, 권한 등등)