Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript MongoDB:数据未通过Angular 2服务保存_Javascript_Node.js_Mongodb_Angular2 Routing_Mean Stack - Fatal编程技术网

Javascript MongoDB:数据未通过Angular 2服务保存

Javascript MongoDB:数据未通过Angular 2服务保存,javascript,node.js,mongodb,angular2-routing,mean-stack,Javascript,Node.js,Mongodb,Angular2 Routing,Mean Stack,我已经创建了如下的路线和模型,数据似乎是从邮递员那里保存的 更新:创建角度服务后无法保存数据 我已经创建了一个服务,它将在单击事件时保存产品数据 节点JS代码 \var\www\html\Express\nodeauthapp master\app.js const express = require('express'); const path = require('path'); const bodyParser = require('body-parser'); const cors =

我已经创建了如下的路线和模型,数据似乎是从邮递员那里保存的

更新:创建角度服务后无法保存数据

我已经创建了一个服务,它将在单击事件时保存产品数据

节点JS代码

\var\www\html\Express\nodeauthapp master\app.js

const express = require('express');
const path = require('path');
const bodyParser = require('body-parser');
const cors = require('cors');
const passport = require('passport');
const mongoose = require('mongoose');
const config = require('./config/database');

// Connect To Database
mongoose.connect(config.database);

// On Connection
mongoose.connection.on('connected', () => {
  console.log('Connected to database '+config.database);
});

const app = express();
const products = require('./routes/products');

...
...
app.use('/products', products);
const express = require('express');
const router = express.Router();
var mongoose = require('mongoose');
const config = require('../config/database');
const Products = require('../models/products');

// Add Categories
router.post('/add', (req, res, next) => {

//res.send('Products addition');
//Create a model folder

   let newProduct = new Products({
        category_name: req.body.category_name,  
        product_name: req.body.product_name,
        product_price: req.body.product_price,
        product_image: req.body.product_image,
        product_desc: req.body.product_desc,
        product_status: req.body.product_status,
        product_createdat: req.body.product_createdat,
        product_updatedat: req.body.product_updatedat
    }); 


     Products.addProduct(newProduct, (err, user) => {
    if(err){
      res.json({success: false, msg:'Product unable to add'});
    } else {
      res.json({success: true, msg:'Products successfuly added!!'});
    }
     });
    });

module.exports = router;
const mongoose = require('mongoose');

const config = require('../config/database');

// Products Schema
const ProductsSchema = mongoose.Schema({
      category_name: {
        type: String
      },
      product_name: {
        type: String,
        required: true
      },
      product_price: {
        type: String,
        required: true
      },
      product_image: {
        type: String,
        required: false
      },
       product_desc: {
        type: String,
        required: false
     },
       product_status: {
        type: String,
        required: true
     },
       product_createdat: {
        type: String,
        required: true
     },
       product_updatedat: {
        type: String,
       required: true
     }
});

const Products = module.exports = mongoose.model('Products', ProductsSchema);


module.exports.addProduct = function(newProduct, callback){
    newProduct.save(callback);
}
@Component({
selector: 'app-blank-page',
templateUrl: './blank-page.component.html',
styleUrls: ['./blank-page.component.scss']
})
export class BlankPageComponent implements OnInit {

@Input() data: any;


constructor(private addproductService:AddproductService,
            private flashMessage:FlashMessagesService,
            private router: Router) { }
ngOnInit() { }


  onRowSelect(event):void{
    console.log(this.view_update_items_smart_data)
    this.view_update_items_smart_data; 

     this.addproductService.productSave(this.view_update_items_smart_data).subscribe(data => {
   console.log(data)
  if(data.success){


    this.flashMessage.show('Product successfully added', {cssClass: 'alert-success', timeout: 3000});
    this.router.navigate(['/category-items']);
  } else {
    console.log('Failure')
    this.flashMessage.show('Something went wrong', {cssClass: 'alert-danger', timeout: 3000});
    this.router.navigate(['/category-items']);
      }
    });
 }


view_update_items_smart_data = [
 {
  "category_name": "Meals",
  "product_name": "South Meals",
  "product_price": "35.00",
  "product_image":"image1",
  "product_desc": "South Meals",
  "product_status" : "Yes",
  "product_createdat" : "13/7/2017",
  "product_updatedat" : "13/7/2017"
 }
 ]
@Injectable()
export class AddproductService {

  view_update_items_smart_data: any;

  constructor(private http:Http) { }


  productSave(view_update_items_smart_data){
    console.log('add service')
    let headers = new Headers();
    headers.append('Content-Type','application/json');
    return this.http.post('http://10.22.3.44:3000/products/add', view_update_items_smart_data,{headers: headers})
      .map(res => res.json());
  }
 } 
\var\www\html\Express\nodeauthapp master\routes\products.js

const express = require('express');
const path = require('path');
const bodyParser = require('body-parser');
const cors = require('cors');
const passport = require('passport');
const mongoose = require('mongoose');
const config = require('./config/database');

// Connect To Database
mongoose.connect(config.database);

// On Connection
mongoose.connection.on('connected', () => {
  console.log('Connected to database '+config.database);
});

const app = express();
const products = require('./routes/products');

...
...
app.use('/products', products);
const express = require('express');
const router = express.Router();
var mongoose = require('mongoose');
const config = require('../config/database');
const Products = require('../models/products');

// Add Categories
router.post('/add', (req, res, next) => {

//res.send('Products addition');
//Create a model folder

   let newProduct = new Products({
        category_name: req.body.category_name,  
        product_name: req.body.product_name,
        product_price: req.body.product_price,
        product_image: req.body.product_image,
        product_desc: req.body.product_desc,
        product_status: req.body.product_status,
        product_createdat: req.body.product_createdat,
        product_updatedat: req.body.product_updatedat
    }); 


     Products.addProduct(newProduct, (err, user) => {
    if(err){
      res.json({success: false, msg:'Product unable to add'});
    } else {
      res.json({success: true, msg:'Products successfuly added!!'});
    }
     });
    });

module.exports = router;
const mongoose = require('mongoose');

const config = require('../config/database');

// Products Schema
const ProductsSchema = mongoose.Schema({
      category_name: {
        type: String
      },
      product_name: {
        type: String,
        required: true
      },
      product_price: {
        type: String,
        required: true
      },
      product_image: {
        type: String,
        required: false
      },
       product_desc: {
        type: String,
        required: false
     },
       product_status: {
        type: String,
        required: true
     },
       product_createdat: {
        type: String,
        required: true
     },
       product_updatedat: {
        type: String,
       required: true
     }
});

const Products = module.exports = mongoose.model('Products', ProductsSchema);


module.exports.addProduct = function(newProduct, callback){
    newProduct.save(callback);
}
@Component({
selector: 'app-blank-page',
templateUrl: './blank-page.component.html',
styleUrls: ['./blank-page.component.scss']
})
export class BlankPageComponent implements OnInit {

@Input() data: any;


constructor(private addproductService:AddproductService,
            private flashMessage:FlashMessagesService,
            private router: Router) { }
ngOnInit() { }


  onRowSelect(event):void{
    console.log(this.view_update_items_smart_data)
    this.view_update_items_smart_data; 

     this.addproductService.productSave(this.view_update_items_smart_data).subscribe(data => {
   console.log(data)
  if(data.success){


    this.flashMessage.show('Product successfully added', {cssClass: 'alert-success', timeout: 3000});
    this.router.navigate(['/category-items']);
  } else {
    console.log('Failure')
    this.flashMessage.show('Something went wrong', {cssClass: 'alert-danger', timeout: 3000});
    this.router.navigate(['/category-items']);
      }
    });
 }


view_update_items_smart_data = [
 {
  "category_name": "Meals",
  "product_name": "South Meals",
  "product_price": "35.00",
  "product_image":"image1",
  "product_desc": "South Meals",
  "product_status" : "Yes",
  "product_createdat" : "13/7/2017",
  "product_updatedat" : "13/7/2017"
 }
 ]
@Injectable()
export class AddproductService {

  view_update_items_smart_data: any;

  constructor(private http:Http) { }


  productSave(view_update_items_smart_data){
    console.log('add service')
    let headers = new Headers();
    headers.append('Content-Type','application/json');
    return this.http.post('http://10.22.3.44:3000/products/add', view_update_items_smart_data,{headers: headers})
      .map(res => res.json());
  }
 } 
\var\www\html\Express\nodeauthapp master\models\products.js

const express = require('express');
const path = require('path');
const bodyParser = require('body-parser');
const cors = require('cors');
const passport = require('passport');
const mongoose = require('mongoose');
const config = require('./config/database');

// Connect To Database
mongoose.connect(config.database);

// On Connection
mongoose.connection.on('connected', () => {
  console.log('Connected to database '+config.database);
});

const app = express();
const products = require('./routes/products');

...
...
app.use('/products', products);
const express = require('express');
const router = express.Router();
var mongoose = require('mongoose');
const config = require('../config/database');
const Products = require('../models/products');

// Add Categories
router.post('/add', (req, res, next) => {

//res.send('Products addition');
//Create a model folder

   let newProduct = new Products({
        category_name: req.body.category_name,  
        product_name: req.body.product_name,
        product_price: req.body.product_price,
        product_image: req.body.product_image,
        product_desc: req.body.product_desc,
        product_status: req.body.product_status,
        product_createdat: req.body.product_createdat,
        product_updatedat: req.body.product_updatedat
    }); 


     Products.addProduct(newProduct, (err, user) => {
    if(err){
      res.json({success: false, msg:'Product unable to add'});
    } else {
      res.json({success: true, msg:'Products successfuly added!!'});
    }
     });
    });

module.exports = router;
const mongoose = require('mongoose');

const config = require('../config/database');

// Products Schema
const ProductsSchema = mongoose.Schema({
      category_name: {
        type: String
      },
      product_name: {
        type: String,
        required: true
      },
      product_price: {
        type: String,
        required: true
      },
      product_image: {
        type: String,
        required: false
      },
       product_desc: {
        type: String,
        required: false
     },
       product_status: {
        type: String,
        required: true
     },
       product_createdat: {
        type: String,
        required: true
     },
       product_updatedat: {
        type: String,
       required: true
     }
});

const Products = module.exports = mongoose.model('Products', ProductsSchema);


module.exports.addProduct = function(newProduct, callback){
    newProduct.save(callback);
}
@Component({
selector: 'app-blank-page',
templateUrl: './blank-page.component.html',
styleUrls: ['./blank-page.component.scss']
})
export class BlankPageComponent implements OnInit {

@Input() data: any;


constructor(private addproductService:AddproductService,
            private flashMessage:FlashMessagesService,
            private router: Router) { }
ngOnInit() { }


  onRowSelect(event):void{
    console.log(this.view_update_items_smart_data)
    this.view_update_items_smart_data; 

     this.addproductService.productSave(this.view_update_items_smart_data).subscribe(data => {
   console.log(data)
  if(data.success){


    this.flashMessage.show('Product successfully added', {cssClass: 'alert-success', timeout: 3000});
    this.router.navigate(['/category-items']);
  } else {
    console.log('Failure')
    this.flashMessage.show('Something went wrong', {cssClass: 'alert-danger', timeout: 3000});
    this.router.navigate(['/category-items']);
      }
    });
 }


view_update_items_smart_data = [
 {
  "category_name": "Meals",
  "product_name": "South Meals",
  "product_price": "35.00",
  "product_image":"image1",
  "product_desc": "South Meals",
  "product_status" : "Yes",
  "product_createdat" : "13/7/2017",
  "product_updatedat" : "13/7/2017"
 }
 ]
@Injectable()
export class AddproductService {

  view_update_items_smart_data: any;

  constructor(private http:Http) { }


  productSave(view_update_items_smart_data){
    console.log('add service')
    let headers = new Headers();
    headers.append('Content-Type','application/json');
    return this.http.post('http://10.22.3.44:3000/products/add', view_update_items_smart_data,{headers: headers})
      .map(res => res.json());
  }
 } 
我基本上是在使用这个插件:

URL使用:在邮递员,我得到成功的消息

角度2代码

\src\app\layout\blank page\blank page.component.ts

const express = require('express');
const path = require('path');
const bodyParser = require('body-parser');
const cors = require('cors');
const passport = require('passport');
const mongoose = require('mongoose');
const config = require('./config/database');

// Connect To Database
mongoose.connect(config.database);

// On Connection
mongoose.connection.on('connected', () => {
  console.log('Connected to database '+config.database);
});

const app = express();
const products = require('./routes/products');

...
...
app.use('/products', products);
const express = require('express');
const router = express.Router();
var mongoose = require('mongoose');
const config = require('../config/database');
const Products = require('../models/products');

// Add Categories
router.post('/add', (req, res, next) => {

//res.send('Products addition');
//Create a model folder

   let newProduct = new Products({
        category_name: req.body.category_name,  
        product_name: req.body.product_name,
        product_price: req.body.product_price,
        product_image: req.body.product_image,
        product_desc: req.body.product_desc,
        product_status: req.body.product_status,
        product_createdat: req.body.product_createdat,
        product_updatedat: req.body.product_updatedat
    }); 


     Products.addProduct(newProduct, (err, user) => {
    if(err){
      res.json({success: false, msg:'Product unable to add'});
    } else {
      res.json({success: true, msg:'Products successfuly added!!'});
    }
     });
    });

module.exports = router;
const mongoose = require('mongoose');

const config = require('../config/database');

// Products Schema
const ProductsSchema = mongoose.Schema({
      category_name: {
        type: String
      },
      product_name: {
        type: String,
        required: true
      },
      product_price: {
        type: String,
        required: true
      },
      product_image: {
        type: String,
        required: false
      },
       product_desc: {
        type: String,
        required: false
     },
       product_status: {
        type: String,
        required: true
     },
       product_createdat: {
        type: String,
        required: true
     },
       product_updatedat: {
        type: String,
       required: true
     }
});

const Products = module.exports = mongoose.model('Products', ProductsSchema);


module.exports.addProduct = function(newProduct, callback){
    newProduct.save(callback);
}
@Component({
selector: 'app-blank-page',
templateUrl: './blank-page.component.html',
styleUrls: ['./blank-page.component.scss']
})
export class BlankPageComponent implements OnInit {

@Input() data: any;


constructor(private addproductService:AddproductService,
            private flashMessage:FlashMessagesService,
            private router: Router) { }
ngOnInit() { }


  onRowSelect(event):void{
    console.log(this.view_update_items_smart_data)
    this.view_update_items_smart_data; 

     this.addproductService.productSave(this.view_update_items_smart_data).subscribe(data => {
   console.log(data)
  if(data.success){


    this.flashMessage.show('Product successfully added', {cssClass: 'alert-success', timeout: 3000});
    this.router.navigate(['/category-items']);
  } else {
    console.log('Failure')
    this.flashMessage.show('Something went wrong', {cssClass: 'alert-danger', timeout: 3000});
    this.router.navigate(['/category-items']);
      }
    });
 }


view_update_items_smart_data = [
 {
  "category_name": "Meals",
  "product_name": "South Meals",
  "product_price": "35.00",
  "product_image":"image1",
  "product_desc": "South Meals",
  "product_status" : "Yes",
  "product_createdat" : "13/7/2017",
  "product_updatedat" : "13/7/2017"
 }
 ]
@Injectable()
export class AddproductService {

  view_update_items_smart_data: any;

  constructor(private http:Http) { }


  productSave(view_update_items_smart_data){
    console.log('add service')
    let headers = new Headers();
    headers.append('Content-Type','application/json');
    return this.http.post('http://10.22.3.44:3000/products/add', view_update_items_smart_data,{headers: headers})
      .map(res => res.json());
  }
 } 
src\app\shared\services\addproduct.service.ts

const express = require('express');
const path = require('path');
const bodyParser = require('body-parser');
const cors = require('cors');
const passport = require('passport');
const mongoose = require('mongoose');
const config = require('./config/database');

// Connect To Database
mongoose.connect(config.database);

// On Connection
mongoose.connection.on('connected', () => {
  console.log('Connected to database '+config.database);
});

const app = express();
const products = require('./routes/products');

...
...
app.use('/products', products);
const express = require('express');
const router = express.Router();
var mongoose = require('mongoose');
const config = require('../config/database');
const Products = require('../models/products');

// Add Categories
router.post('/add', (req, res, next) => {

//res.send('Products addition');
//Create a model folder

   let newProduct = new Products({
        category_name: req.body.category_name,  
        product_name: req.body.product_name,
        product_price: req.body.product_price,
        product_image: req.body.product_image,
        product_desc: req.body.product_desc,
        product_status: req.body.product_status,
        product_createdat: req.body.product_createdat,
        product_updatedat: req.body.product_updatedat
    }); 


     Products.addProduct(newProduct, (err, user) => {
    if(err){
      res.json({success: false, msg:'Product unable to add'});
    } else {
      res.json({success: true, msg:'Products successfuly added!!'});
    }
     });
    });

module.exports = router;
const mongoose = require('mongoose');

const config = require('../config/database');

// Products Schema
const ProductsSchema = mongoose.Schema({
      category_name: {
        type: String
      },
      product_name: {
        type: String,
        required: true
      },
      product_price: {
        type: String,
        required: true
      },
      product_image: {
        type: String,
        required: false
      },
       product_desc: {
        type: String,
        required: false
     },
       product_status: {
        type: String,
        required: true
     },
       product_createdat: {
        type: String,
        required: true
     },
       product_updatedat: {
        type: String,
       required: true
     }
});

const Products = module.exports = mongoose.model('Products', ProductsSchema);


module.exports.addProduct = function(newProduct, callback){
    newProduct.save(callback);
}
@Component({
selector: 'app-blank-page',
templateUrl: './blank-page.component.html',
styleUrls: ['./blank-page.component.scss']
})
export class BlankPageComponent implements OnInit {

@Input() data: any;


constructor(private addproductService:AddproductService,
            private flashMessage:FlashMessagesService,
            private router: Router) { }
ngOnInit() { }


  onRowSelect(event):void{
    console.log(this.view_update_items_smart_data)
    this.view_update_items_smart_data; 

     this.addproductService.productSave(this.view_update_items_smart_data).subscribe(data => {
   console.log(data)
  if(data.success){


    this.flashMessage.show('Product successfully added', {cssClass: 'alert-success', timeout: 3000});
    this.router.navigate(['/category-items']);
  } else {
    console.log('Failure')
    this.flashMessage.show('Something went wrong', {cssClass: 'alert-danger', timeout: 3000});
    this.router.navigate(['/category-items']);
      }
    });
 }


view_update_items_smart_data = [
 {
  "category_name": "Meals",
  "product_name": "South Meals",
  "product_price": "35.00",
  "product_image":"image1",
  "product_desc": "South Meals",
  "product_status" : "Yes",
  "product_createdat" : "13/7/2017",
  "product_updatedat" : "13/7/2017"
 }
 ]
@Injectable()
export class AddproductService {

  view_update_items_smart_data: any;

  constructor(private http:Http) { }


  productSave(view_update_items_smart_data){
    console.log('add service')
    let headers = new Headers();
    headers.append('Content-Type','application/json');
    return this.http.post('http://10.22.3.44:3000/products/add', view_update_items_smart_data,{headers: headers})
      .map(res => res.json());
  }
 } 
我总是收到失败消息,但通过邮递员,数据得以保存

下面是我浏览器中的控制台日志


检查您的请求。您可能没有将
application/json
作为内容类型发送。还要检查是否已使用
app.use(bodyParser.json())
实际配置了主体解析器。日志
req.body
。你能在我的更新中提出建议吗code@NeilLunn,在我用angular创建服务后,数据似乎无法保存