node REPL .load 커맨드 무한루프 에러

개발자가 되고 싶어요·2023년 1월 30일
0

ERROR

목록 보기
2/2
post-thumbnail

mongoose 모델 스키마 공부 중에 js파일에서 스키마를 정의하고 만든 모델을 mongoDB에 넘기는 과정에서 받은 오류이다.

해결법은 내가 완벽히 원하는 방향의 해결법은 아직 얻지 못하였는데 다른 방향으로 오류를 해결할 수 있긴하다.

// 우선 스키마 정의 js파일 
// index. js

const mongoose = require('mongoose');
mongoose.set('strictQuery',true);

mongoose.connect("mongodb://localhost:27017/movieApp")
    .then(()=> {
        console.log('connection open')
    })
    .catch(err=> {
        console.log("OH NO ERROR")
        console.log(err)
    })

const movieSchema = new mongoose.Schema({
    title: String,
    year: Number,
    score: Number,
    rating: String
})

const Movie =  mongoose.model('Movie', movieSchema)

const Django = new Movie({ title: 'Django', year: 2010, score: 8.0, rating: 'R' })

error 발생 포인트

터미널로 인스턴스를 옮기러면
node repl에 .load index.js를 입력하면 옮겨지는 것 같다.

yoojaeyoon@yujaeyuns-MacBook-Air-2 mongoose % node
Welcome to Node.js v18.13.0.
Type ".help" for more information.
> .load index.js

그런데 내 터미털에 똑같이 입력하면

const mongoose = require('mongoose');

무한루프로 출력된다.

이건 또 무슨 오륜고 하고 googling(뽀인트) 해보니 " 음 안나와 정보 없어 "
한 몇분 더 뒤져보니 stackoverflow에 나랑 같은 사람이 있었다.

https://stackoverflow.com/questions/75234030/load-command-goes-in-an-infinite-loop-when-trying-to-load-a-file-in-node-js-rep
ㅋㅋ ㅎㅇ

그래서 기분 좋게 답변이나 봐야겠다 하고 확인해보니 내가 원했던 node repl에서 무한루프가 출력되지 않고 터미널로 옮기는 것이 아니라 그냥 일반 터미널에서

node -i -e "$(< index.js)"

이 커맨드를 입력해 보내는 방식으로 repl에서가 아닌 repl 외부, 일반 터미널에서 해결 가능하게 해줬다.

yoojaeyoon@yujaeyuns-MacBook-Air-2 mongoose % node -i -e "$(< index.js)"
Welcome to Node.js v18.13.0.
Type ".help" for more information.
> connection open
Djanango
{
  title: 'Django',
  year: 2010,
  score: 8,
  rating: 'R',
  _id: new ObjectId("63d7aa63ddbf2ee65ced3932")
}

// 커맨드에서 Django 인스턴스 검색 가능 오류 해결 그러나 
// 내가 원한 repl에서 얻은 것은 아니었음

일단 해결했다는 것에 굉장히 만족했지만 repl에서 실행시 무한루프를 받지 않고 값을 얻기 위해 googling을 해보았지만 찾지 못했다. 아직까지 그래도 다른 해결 법을 찾아서 다행이다.

맨날 내 컴퓨터만 오류 나! 왜 나에 대한 기준만 엄격한데!

profile
I want to be a Backend Developer

3개의 댓글

comment-user-thumbnail
2023년 2월 24일

안녕하세요 저도 글쓴이 분처럼 무한 루프에 걸려서 실행하지 못 하는 상황인데요...
그 글에 쓰신 것 처럼 node -i -e "$(< index.js)" 을 입력하면

node -i -e "(<product.js)"nodeie"(< product.js)" node -i -e "(< product.js)"
^^^^^^^^^^^^^^^^^

Uncaught SyntaxError: Unexpected string
이런 식으로 떠서 선언 자체가 안 되는데 이럴 경우에는 어떻게 해야하는지 알 수 있을까요??

1개의 답글