2017-10-09 1 views
1

MEAN 스택을 배우는 나의 탐구에서 나는 작은 멀티 테넌트 형 애플리케이션을 만들고 내 사용자/세입자 모두를 등록하는 데 어려움을 겪고있다. 백엔드가 정렬됩니다. 나는 단지 볼을 플레이하는 각도를 구하는 방법을 알 수 없습니다.평균 2 멀티 입주자 응용 프로그램. 2 가지 모델을 생성하는 폼

흐름 ... 사용자가 동시에 새 임차인을 만드는 새 계정을 등록합니다. 그렇게 ...

var express = require('express'); 
var router = express.Router(); 
var bcrypt = require('bcryptjs'); 

var Tenant = require('../models/tenant'); 
var User = require('../models/user'); 

router.post('/', function (req, res, next) { 

    var tenant = new Tenant({ 
    name: req.body.name 
    }); 

    tenant.save(function(err, tenant) { 
    Tenant.findById(tenant._id, function(err, tenant) { 
     var user = new User({ 
     first_name: req.body.first_name, 
     last_name: req.body.last_name, 
     email: req.body.email, 
     password: bcrypt.hashSync(req.body.password, 10), 
     active: req.body.active, 
     tenant: tenant 
     }) 
     user.save(function (err, user) { 
     if (err) { 
      return res.status(500).json({ 
      title: 'An error has occured', 
      error: err 
      }); 
     } 
     res.status(201).json({ 
      message: 'User created', 
      obj: user 
     }); 
     }) 

    }); 
    }); 

// tenant.findByIdAndUpdate(tenant._id, {owner: user._id}); 

}); 

module.exports = router; 

이것은 대부분 의도 한대로 작동합니다. 적어도 우편 배달부와 테스트 중입니다. (제가 도입 세입자를 시도하기 전에 작동 상태에서) 각도 내 가입 구성 요소에서

은 다음과 같습니다 (내가 소개 세입자를 시도하기 전에 작동 상태에서 다시) ...

import { Component, OnInit } from '@angular/core'; 
import {FormControl, FormGroup, Validators} from "@angular/forms"; 
import {Router} from "@angular/router"; 
import {AuthService} from "../auth.service"; 
import {User} from "../user.model"; 
import {Tenant} from "../tenant.model"; 

@Component({ 
    selector: 'app-signup', 
    templateUrl: './signup.component.html', 
    styleUrls: ['./signup.component.css'] 
}) 
export class SignupComponent implements OnInit{ 
    myForm: FormGroup; 

    constructor(private router: Router, private authService: AuthService) {} 

    onSubmit() { 
    const user = new User(
     this.myForm.value.first_name, 
     this.myForm.value.last_name, 
     this.myForm.value.email, 
     this.myForm.value.password 
    ); 
    this.authService.signup(user) 
     .subscribe(
     data => console.log(data), 
     error => console.error(error) 
    ); 
    this.router.navigate(['/signup/success/' + this.myForm.value.email]); 
    } 

    ngOnInit() { 
    this.myForm = new FormGroup({ 
     coName: new FormControl('', Validators.required), 
     email: new FormControl('', Validators.required), 
     password: new FormControl('', Validators.required), 
     active: new FormControl(true, Validators.required) 
    }); 
    } 

} 

내 AuthService

import { Injectable } from "@angular/core"; 
import { Http, Headers, Response } from "@angular/http"; 
import 'rxjs/Rx'; 
import { Observable } from "rxjs"; 

import { User } from "./user.model"; 
import { Tenant } from "./tenant.model"; 


@Injectable() 
export class AuthService { 
    constructor(private http: Http) {} 

    signup(user: User) { 
    const body = JSON.stringify(user); 
    const headers = new Headers({'Content-Type': 'application/json'}); 
    return this.http.post('/api/tenant', body, {headers: headers}) 
     .map((response: Response) => response.json()) 
     .catch((error: Response) => Observable.throw(error.json())); 
    } 

    signin(user: User) { 
    const body = JSON.stringify(user); 
    const headers = new Headers({'Content-Type': 'application/json'}); 
    return this.http.post('/api/user/signin', body, {headers: headers}) 
     .map((response: Response) => response.json()) 
     .catch((error: Response) => Observable.throw(error.json())); 
    } 

    logout() { 
    localStorage.clear(); 
    } 

    isLoggedIn() { 
    return localStorage.getItem('token') !== null; 
    } 
} 

지금은 유인물을 찾는 사람이 아닙니다. 또는 나를 위해이 글을 쓰는 사람이 ... 여기에 허용 된 경우 올바른 방향으로 친근감을 느낍니다.). 반응 형을 포기하고 ngModel을 사용하는 것이 더 쉬울까요? 또는 사용자/거주자의 하이브리드 인 새로운 각도 모델을 정의 할 수 있습니까?

건배.

답변

0

누군가가 이것을보고 신경 쓰는 경우 ... 나는 내 몽구스 모델을 모방 한 내 각형 모델에 중요성을 두었습니다. 필자는 세입자와 사용자 몽구스 모델의 관련 필드로 구성된 새로운 각도 모델 (signup.model.ts)을 만들었습니다. 이제 이것이 이것이 반드시 구조화의 이상적인 방법이라고 확신 할 수는 없지만 작동하므로 대답으로 생각할 수 있습니다.

건배.