작성
·
587
0
안녕하세요 현재 cjs 가 아닌 es6 로 nodejs 코드를 작성하고 있습니다. 9-2 강의 진행 중 강사님 깃헙 리포지토리 9-2 폴더 중 app.js 20번 줄에서
sequelize.sync is not a function
이라는 오류가 나옵니다. 구글 검색을 해본 결과 일부 블로그에서 es6 에서는 해당 함수를 사용이 불가하다는 글을 보았습니다.
그리고 models/index.js 파일에서
fs.readdirSync(__dirname)
.filter(file=>{
return file.indexOf('.') !== basename && file.slice(-3) === '.js';
})
.forEach((file) =>{
import(path.join(__dirname,file))
.then((obj) => {console.log(obj.name);
obj(sequelize, Sequelize.DataTypes);
db[obj.name] = obj;
obj.initiate(sequelize);})
.catch(err => console.log(err));
//const model = require(path.join(__dirname, file));
//console.log(file,model.name);
//db[model.name] = model;
//model.initiate(sequelize);
});
주석 처리한 부분은 cjs 스타일이고 변경한 부분은 동적 import 를 사용해서 구현해보았습니다. 구글 검색 후
obj(sequelize, Sequelize.DataTypes) 구문을 삽입하면 해당 오류가 해결이된다고 했으나 해결이 되지 않습니다.
오류설명이 구구절절 길었으나 제 질문을 정리하자면
해당 함수(sequelize.sync)가 es6에서는 사용이 안되나요?
사용이 안되다면 전면 cjs 로 바꿔 코드 작성을 해야하나요?
입니다.
es6 코드 작성을 연습하고자 코드를 변경해가며 진행중인데 난관을 겪었습니다. 질문 유의사항을 잘지켜야지 하며 적었는데 가독성이 있을지는 모르겠습니다. 감사합니다.