목록분류 전체보기 (208)
jm_p_op
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에서 실행할것을 제작가능 (예를들면 인증, 기록, 권한 등등)
DB에 error 메세지 저장cache로 서버에 보관,관리console에 찍히는것과 Response값 구분 Inputi: error_message의 id값input : 에러발생시 유저의 input값을 작성하여 에러발생원인 파악CodeJSON.stringify을 통해 보기 좋게 변동Outputresponse : http 상태코드detail : 상세이유async function get(i,input=""){ value = cache.get(i) if (value==undefined){ db = await ErrorMessage.findAll({where:{id:i}}) for(j in db){ cache.set(db[j].id,db[j]) ..
npm install xlsxdefault value값이 있는 경우 원래 DB에서 migration할때 충돌이 일어날수가 있다.즉 migration하기전에 DB에 넣어줘야 함으로 migration값= True설정이후 추가적으로 넣는 값들은 seed에 값에만 반영함으로 migration = False로 잡자// modules/seedDB.jsvar xlsx = require("xlsx");const excelFile = xlsx.readFile( "./seeders/seed_data.xlsx" );async function seed_data(db){ const table = excelFile.Sheets[db]; // @details 시트의 제목 추출 return xlsx.util..
https://www.npmjs.com/package/node-cachenpm install node-cache --save사용법dictionary처럼 key -value값으로 존재한다. ttl을 사용하여 데이터 보관시간 관리자주 쓰는 데이터는 cache해두자제작한거Permission id값과 이름을 지속적으로 변동해야되는데, DB에서 처리하는것보다 서버가 부담하는것이 좋다.대신 admin 유저만 사용가능하게 제작 get - 한개씩 저장setAll - 한번에 저장patch - 데이터 수정될때 사용 (백 서버 여러개일때 서로에서 쏴주면 될듯싶다,)아쉬운점서버 메모리 할당됨으로 갯수 제한은 직접 코드로 작성해야된다.같은것을 또 사용할때, ttl 업데이트가 안된다. const {Permission} = req..
차집합,교집합 같이 구하기let [create,update]=add_perm.reduce((a,b)=> { console.log(a,b) if(user.auth.includes(b)){ a[0].push(b) } else{ a[1].push(b) } return a } ,[[],[]])
1:1, 1:m in PK FieldhasOne/hasMany( FK-Field,{ 칼럼 설정})칼럼 설정{foreignKey: 'FK의 칼럼명',as: '변수로 쓸것',allowNull 등등 설정 가능}1:1, 1:m in FK FieldhasOne/hasMany( PK-Field,{ 칼럼 설정})칼럼 설정{foreignKey: 'PK의 칼럼으로 쓸것',allowNull 등등 설정 가능} m:n Field중간의 field의 model 생성 양쪽에 belongsToMany()생성this.belongsToMany( 반대모델,{ through:중간모델, foreignKey:중간모델에서의 현 모델 칼럼, } )탐색const result1 = ..
migration에 시간 안넣으면 associate에서 에러 날 가능성 존재{table 설정}={ sequelize, modelName: '모델명만있으면 테이블 명은 복수로 들어간다', tableName: '해당 table명', '칼럼명':'false는 칼럼 제거-아래는 예시' createdAt:false, timestamps:'createAt,updatedAt 동시로, false하면 사라짐'}
쿼리문을 사용하여 한번에 여러개 넣을수 있도록 제작migration 하면서 default값인 1이 제작됨으로 그 이후것을 넣어주면 된다.id값과 같이 넣어주면 더욱 안정적이지만,중간에 누군가 추가하고 지우지 않는다면, 문제없으니 조심히 사용하자const name=["Activate","Deactivate"] var names="" for(var i in name){ names += "('"+ name[i]+"')," } await queryInterface.sequelize.query(` INSERT INTO public."Status"( "stateName") VALUES ${names.slice(0,-1)};` )