这是我用于工作的猫鼬模式:
let Work = require('../Models/Work');
let Company = require('../Models/Company');
let WorkController = {
createWork:function(req, res){
let trial = new Work();
console.log( req.session.Username+ " session");
trial.Username= req.session.Username;
trial.VideoURl= req.body.VideoURl;
trial.Price=req.body.Price;
trial.Title= req.body.Title;
User=req.session.Username;
Company.findOne( {Username:User},function(err, company){
trial.Company_id=company._id;
trial.save(function(err, Work){
if(err){
res.send(err.message);
console.log(err);
}
});
});
}
}
module.exports = WorkController;
这是我的工作负责人:
let CompanyController = {
login:function(req,res){
var Username = req.body.Username;
var Password =req.body.Password;
Company.findOne({Username:Username,Password:Password},function(err,Company)
{
if(!Company){
return console.log('you are not athorized ');
res.status(500).send(errorMsg);
;}
else{
res.json(Company);
req.session.Username = Company.Username;
console.log("username session: " + req.session.Username);
}
})
}
,
createCompany:function(req, res){
let company = new Company(req.body);
company.save(function(err, company){
if(err){
res.send(err.message)
console.log(err);
}
else{
req.session.Username= req.body.Username;
console.log(company);
}
})
}
}
module.exports = CompanyController;
这是我公司的架构: 让公司=要求(' ../ Models / Company');
import { Injectable } from '@angular/core';
import { Http, Response, Headers, RequestOptions } from '@angular/http';
import { Observable } from 'rxjs/Rx';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/catch';
import { BaseUrl } from "../config/base-url.config";
enum HttpMethod {
get,
post,
patch,
put
}
@Injectable()
export class AdminHttpService<T> {
baseUrl: string;
constructor(private _http: Http, private _baseUrl: BaseUrl) {
this.baseUrl = _baseUrl.getHttpBaseUrl();
}
getCollection(relativeUrl: string): Observable<T[]>;
getCollection(relativeUrl: string, options: RequestOptions): Observable<T[]>;
getCollection(relativeUrl: string, options?: RequestOptions): Observable<T[]> {
return this.xhr(relativeUrl, HttpMethod.get, options);
}
get(relativeUrl: string): Observable<T>;
get(relativeUrl: string, options: RequestOptions): Observable<T>;
get(relativeUrl: string, options?: RequestOptions): Observable<T> {
return this.xhr(relativeUrl, HttpMethod.get, options);
}
getJson(path): Observable<T> {
return this._http.get(path)
.map((resp: Response) => resp.json())
.catch((error: any) => Observable.throw(error.json().error || 'Something went wrong!'));
}
create(relativeUrl: string, data: any, options?: RequestOptions): Observable<T> {
return this.xhr(relativeUrl, HttpMethod.post, data, options);
}
private xhr(relativeUrl: string, httpMethod: HttpMethod, requestBody?: any, options?: RequestOptions): any {
var requestUrl: string = this.baseUrl + relativeUrl;
if (!options) {
options = new RequestOptions({
withCredentials: true
});
}
switch (httpMethod) {
case HttpMethod.get:
return this._http.get(requestUrl, options)
.map((resp: Response) => resp.json())
.catch((error: any) => Observable.throw(error.json().error || 'Something went wrong!'));
case HttpMethod.post:
return this._http.post(requestUrl, requestBody, options)
.map((resp: Response) => resp.json())
.catch((error: any) => Observable.throw(error.json().error || 'Something went wrong!'));
}
}
}
当公司用户登录并尝试创建工作时,控制台中会出现此错误&#34; TypeError:无法读取属性&#39; id&#39; of null&#34;