config.json 파일을 불러올 수 없습니다.
521
작성한 질문수 50
안녕하세요 선생님
npm start 실행하면 config파일이 잘 불러와지는데
npm run test를 실행하면 config 파일이 불러와지지 않는 것 같습니다.
routes/auth.test.js
● Test suite failed to run
TypeError: Cannot read properties of undefined (reading 'database')
10 | const db = {};
11 | const sequelize = new Sequelize(
> 12 | config.database, config.username, config.password, config,
| ^
13 | );
14 |
15 | db.sequelize = sequelize;
at Object.database (models/index.js:12:12)
at Object.require (app.js:17:21)
at Object.<anonymous> (routes/auth.test.js:1:30)
npm run test를 했을 때 뜨는 오류입니다.
{
"development": {
"username": "root",
"password": "비밀번호",
"database": "nodebird",
"host": "127.0.0.1",
"dialect": "mysql"
},config/config.json 파일에 developmont도 존재합니다.
const Sequelize = require('sequelize');
const fs = require('fs');
const path = require('path');
const env = process.env.NODE_ENV || 'development';
console.log(env);
const config = require('../config/config')[env];
console.log(config)
const db = {};
const sequelize = new Sequelize(
config.database, config.username, config.password, config,
);models/index.js 파일입니다.
npm start를 실행하면 에러없이 실행되고, console.log도 실행되어서 env, config 다 undefined가 아님을 확인했습니다.
어떤 부분이 문제인지 감을 잘 잡지 못하겠습니다.
힌트 좀 주실 수 있을까요?
답변 2
0
{ "development": { "username": "root", "password": "비밀번호", "database": "nodebird", "host": "127.0.0.1", "dialect": "mysql" }, 이거 development 말고 test때도 넣으셨나요? NODE_ENV가 test가 됩니다. 테스트 시에는요.
0
안녕하세요 선생님!
{
"development-home": {
"username": "root",
"password": "비밀번호",
"database": "nodebird",
"host": "127.0.0.1",
"dialect": "mysql"
},
"test": {
"username": "root",
"password": "비밀번호",
"database": "nodebird-test",
"host": "127.0.0.1",
"dialect": "mysql"
},
"test-remote": {
"username": "root",
"password": "비밀번호",
"database": "nodebird-test",
"host": "127.0.0.1",
"dialect": "mysql"
},
"production": {
"username": "root",
"password": null,
"database": "database_production",
"host": "127.0.0.1",
"dialect": "mysql"
}
}test NODE_ENV 추가해서 잘 되었습니다.
회사에서 남아서 자주 공부를 해서 여러 실행 프로필을 만들어두려고 했는데,
위에 처럼 임의로 제가 NODE_ENV를 만들고 적용할 수 있을까요?
npm run test 시에는 test NODE_ENV가 고정인 것 같아서 여쭤봅니다.
test-remote나 test-home 등 이렇게 test시에도 NODE_ENV를 바꿀 수 있었으면 좋겠는데 정보를 찾기가 쉽지 않습니다.
jest 공식 문서도 보고 있는데.. test 시에는 NODE_ENV가 test라고 나오는 내용을 제가 못 찾아서..
NODE_ENV 관련 검색을 해도 예시 값으로 development, production만 계속 보이는 것 같아서 혹시 어떻게 찾으셨는지도 여쭤봐도 될까요?
1
사실 문서에서 굳이 찾으실 필요가 있나 싶습니다. 그냥 console.log(NODE_ENV)하면 test라는 게 보이니까요.
process.env는 언제든 직접 바꿀 수 있습니다. NODE_ENV=test_home jest를 하면 NODE_ENV가 test_home으로 바뀝니다.
0
선생님 죄송한데 질문 다시 한 번만 드리겠습니다..
"test": "set NODE_ENV=test-remote && jest --runInBand",package.json에 test 스크립트를 위처럼 써 놓았는데
models/index.js에서 똑같이 config를 불러오지 못합니다.
const Sequelize = require('sequelize');
const fs = require('fs');
const path = require('path');
const env = process.env.NODE_ENV || 'development';
console.log('NODE_ENV =', process.env.NODE_ENV);
const config = require('../config/config')[env];
const db = {};
const sequelize = new Sequelize(
config.database, config.username, config.password, config,
);위에서 process.env.NODE_ENV 를 출력하는 console.log도 실행되지 않습니다.
깃헙 질문
0
82
2
강의 1-1 수업노트의 로드맵 링크가 작동하지 않습니다.
0
78
1
aws - lightsail 이용 관련
0
59
1
4강 http 서버 만들때 ESM방식으로 해도 될까요?
0
83
2
모듈 사용 시 단점이 있나요?
0
84
1
node.js 버전 및 typescript 적용 문의
0
95
2
12.7. 방장기능(강퇴) 질문드립니다.
0
80
2
12.7 socket.js코드 그대로 뱃겨서 했는데, socket.request.session.color가안나오네요
0
69
1
12.7 코드 그대로 뱃겨서 햇는데 스샷같이 오류가뜹니다.
0
77
2
12.7.1스스로 해보기 질문되나요
0
95
3
시퀄라이즈 실습하기 질문드립니다.
0
196
9
<7-5. 시퀄라이즈 사용하기>수업 질문 드립니다.
0
97
2
크롬에서 user id를 인풋에 입력하고 등록하면 404 에러처리 페이지가 뜹니다.
0
113
2
구매 결제관련 질문입니다 !
0
123
1
다수의 supertest 가 실행될 때 force:true로 인한 DB 초기화 문제
0
134
2
node 설치 방법이 전혀다르게 바뀐것 같습니다.
0
152
2
12강 깃허브에 있는 12.7 chat.html 복붙했는데 css오류
0
123
2
무료/프리미엄 동시 소유 시 질문
0
117
1
비주얼 스튜디오 코드로 계속 진행해도 괜찮을까요?
0
136
2
10강 cors에러 localhost:4000으로 접속했을때 에러
1
159
2
webstorm 해결할 수 없는 변수 문제
0
155
2
혹시 몽고DB 쓸거면 MySQL 강의 스킵해도 되나요?
0
149
2
LightSail 실행 중 오류 질문드립니다!
0
204
2
RedisStore 사용법 질문
0
133
2





