inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지

몽구스 실전 프로젝트

sub schema 업데이트 방법 질문합니다.

321

eunoia2040

작성한 질문수 4

0

const permissionSchema = new Schema({
    page: { type: String },
    permitted_users: [{
      type: mongoose.Schema.Types.ObjectId,
      ref: "User",
    }],
});

const appSchema = new Schema({
    name: { type: string },
    permissions: [permissionSchema],
});

const userSchema = new Schema({
    email: { type: string },
    name: { type: string },
});

 

안녕하세요. 위의 스키마는 대략적인 필드만 나타낸 예시입니다. 여기서 파라미터(app_id, permission_id, user_id)를 클라이언트에서 받아서 permitted_users에 받은 user_id를 추가해주는 작업을 해주고 있습니다. (DB에 저장도 잘 됩니다.)

현재 controller와 service가 분리되어 있어서 controller에서 서비스로 addPermittedUser를 호출하면 업데이트된 결과를 받고 싶은데 어떻게 받아야할지 잘 모르겠습니다... 

async와 await을 사용해서 return 도 해보았는데, MongooseError: Query was already executed 오류가 계속 발생해서 해결을 하지 못하고 있습니다...

// permissionService - addPermittedUser
exports.addPermittedUser = async (options) => {
  const {app_id, permission_id, user_id } = options;

  App.findById(app_id, (error, app) => {
    if (error) {
      console.log(error);
    }
    app.permissions.id(permission_id).permitted_users.push(user_id);
    app.save();
  });
};

접근 방향을 알려주실 수 있을까요?

Sequelize nodejs mongodb mysql

답변 1

0

제로초(조현영)

업데이트는 되는데 컨트롤러에서 return 값을 못 받고 계신 건가요?

const app = await App.findById(app_id);
app.permissions...(user_id);
return app.save();

하시면 안 되나요?

리눅스 노드 설치시 패키지

0

172

0

socket.js 에서 referer로부터 roomId를 가져올 때

0

926

3

스트리밍 방식으로 대용량 파일 업로드 & 다운로드 관련 질문

0

2297

2

a[title] 질문드립니다

0

386

1

리뉴얼 강의 및 공부 방법

0

589

1

jwt decode

0

1138

1

node.js 교과서 3판 질문드립니다

0

396

1

passport와 jwt

0

438

1

리뉴얼 강의

0

428

2

혹시 Node.js 교과서 3판 이북은 언제 나오나요?

0

359

1

몽고디비 사용자도 MYSQL부분을 들어야 하나요???

0

488

1

sql 쿼리 로그는 어떤 모듈이 작성하나요?

0

511

2

nunjucks res.render('error'); 작동을 안합니다.

0

518

1

질문있습니다.

0

348

1

multer 한글 파일 업로드시 파일명이 깨져요.

1

3543

1

수업자료는 어디있나요?

0

374

1

질문 있습니디

0

244

1

multer 사용시 file 외 name값은 못받나용?

0

429

1

코드 중복 부분 질문드립니다.

0

303

1

api 만드는 이유 질문드립니다.

0

293

1

Strategy의 done에 대해 질문드립니다.

0

373

1

안녕하세요 fs 권한 관련 질문드립니다

0

456

1

시퀄라이즈 연결질문...

0

510

2

res.setHeader vs res.cookie

0

1797

3