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' })
터미널로 인스턴스를 옮기러면
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에 나랑 같은 사람이 있었다.
그래서 기분 좋게 답변이나 봐야겠다 하고 확인해보니 내가 원했던 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을 해보았지만 찾지 못했다. 아직까지 그래도 다른 해결 법을 찾아서 다행이다.
맨날 내 컴퓨터만 오류 나! 왜 나에 대한 기준만 엄격한데!
안녕하세요 저도 글쓴이 분처럼 무한 루프에 걸려서 실행하지 못 하는 상황인데요...
그 글에 쓰신 것 처럼 node -i -e "$(< index.js)" 을 입력하면
Uncaught SyntaxError: Unexpected string
이런 식으로 떠서 선언 자체가 안 되는데 이럴 경우에는 어떻게 해야하는지 알 수 있을까요??