Node.js Express Restful Api无法获取angular度HTTP发布json

我一直无法访问传递的数据,以表示来自angular度http服务的宁静服务(我用angular + node + express + mongodb构build这个web应用程序)

当我使用angular度来发布数据rest服务,它不能得到我的后json数据,但是当我使用POSTMAN发布数据,然后它正在工作….

怎么会这样 ? 是我在安静的服务器端缺less的东西?

这是angular度postjson时的回复

{ __v: 0, _id: "59e854e9895ea424b40471a9", updateTime: "2017-10-19T07:31:53.301Z", createTime: "2017-10-19T07:31:53.301Z" } 

这是postman发布json时的回复

 { "__v": 0, "uuid": "123", "major": 10029, "minor": 18910, "bluetoothAddress": "123", "createBy": "root", "updateBy": "root", "_id": "59e852ab4297be32902bae1d", "updateTime": "2017-10-19T07:22:19.417Z", "createTime": "2017-10-19T07:22:19.417Z" } 

这是我的angular度代码

  1. controller.js

     $scope.submitNewIbeacon = function() { let data = { uuid: $scope.inputUUID, major: parseInt($scope.inputMajor), minor: parseInt($scope.inputMinor), bluetoothAddress: $scope.inputBluetoothAddress, createBy: $scope.loginUser, updateBy: $scope.loginUser } IbeaconListService.create_a_ibeacon(data) .then( function(response) { var newIBeacon = response.data; }); } 
  2. service.js

     app.service('IbeaconListService', ['$http', '$q', function($http, $q) { var BASEURL = "http://localhost:3000"; this.create_a_ibeacon = function(data) { var deferred = $q.defer(); var config = { headers: { 'Content-Type': 'application/json;charset=utf-8;' } } $http.post(BASEURL + "/ibeacons", data, config) .then(function(data) { deferred.resolve(data); }, function(error) { deferred.reject(error); }) return deferred.promise; } }]); 

这是我的nodejs代码

  1. server.js

     const express = require('express'), app = express(), port = process.env.PORT || 3000, fileUpload = require('express-fileupload'), cors = require('cors'), mongoose = require('mongoose'), ibeacon = require('./api/models/ibeaconListModel'), area = require('./api/models/areaListModel'), bodyParser = require('body-parser'); app.use(cors()); app.use(bodyParser.urlencoded({ extended: false })) app.use(bodyParser.json()) // mongoose instance connection url connection mongoose.Promise = global.Promise; // connect to MongoDB and create/use database called IbeaconDB mongoose.connect('mongodb://localhost/IbeaconDB'); //importing route var ibeaconRoutes = require('./api/routes/ibeaconListRoutes.js'); var areaRoutes = require('./api/routes/areaListRoutes.js'); //register the route ibeaconRoutes(app); areaRoutes(app); app.listen(port); console.log('ibeacon RESTful API server started on: ' + port); app.use(function(req, res) { res.status(404).send({ url: req.originalUrl + ' not found' }) }); 
  2. ibeaconListModel.js

     'use strict'; var mongoose = require('mongoose'); var Schema = mongoose.Schema; var IbeaconSchema = new Schema({ uuid: { type: String }, major: { type: Number }, minor: { type: Number }, bluetoothAddress: { type: String }, createBy: { type: String }, createTime: { type: Date, default: Date.now }, updateBy: { type: String }, updateTime: { type: Date, default: Date.now } }); // create a model based on the schema module.exports = mongoose.model('Ibeacons', IbeaconSchema); 
  3. ibeaconListRoutes.js

     'use strict'; module.exports = function(app) { var ibeaconList = require('../controllers/ibeaconListController'); // ibeaconList Routes app.route('/ibeacons') .get(ibeaconList.list_all_ibeacons) .post(ibeaconList.create_a_ibeacon); app.route('/ibeacons/:ibeaconId') .get(ibeaconList.read_a_ibeacon) .put(ibeaconList.update_a_ibeacon) .delete(ibeaconList.delete_a_ibeacon); }; 
  4. ibeaconListController.js

     'use strict'; var mongoose = require('mongoose'), Ibeacon = mongoose.model('Ibeacons'); exports.list_all_ibeacons = function(req, res) { Ibeacon.find({}, function(err, ibeacon) { if (err) res.send(err); res.json(ibeacon); }); }; exports.create_a_ibeacon = function(req, res) { const doc = { uuid: req.body.uuid, major: req.body.major, minor: req.body.minor, bluetoothAddress: req.body.bluetoothAddress, updateBy: req.body.updateBy, createBy: req.body.createBy } var new_ibeacon = new Ibeacon(doc); console.log(new_ibeacon); new_ibeacon.save(function(err, ibeacon) { if (err) res.send(err); res.json(ibeacon); }); }; exports.read_a_ibeacon = function(req, res) { Ibeacon.findById(req.params.ibeaconId, function(err, ibeacon) { if (err) res.send(err); res.json(ibeacon); }); }; exports.update_a_ibeacon = function(req, res) { const doc = { uuid: req.body.uuid, major: req.body.major, minor: req.body.minor, bluetoothAddress: req.body.bluetoothAddress, updateBy: req.body.updateBy, updateTime: Date.now() } Ibeacon.findOneAndUpdate({ _id: req.params.ibeaconId }, doc, { new: true }, function(err, ibeacon) { if (err) res.send(err); res.json(ibeacon); }); }; exports.delete_a_ibeacon = function(req, res) { Ibeacon.remove({ _id: req.params.ibeaconId }, function(err, ibeacon) { if (err) res.send(err); res.json({ message: 'Ibeacon successfully deleted' }); }); }; 

更新 10:29 pm我使用自定义中间件来检查我的请求,然后我发现我的http方法是GET(它假设是POST)

自定义中间件

 app.use((req,res,next) => { console.log(req); next(); }); 

邮差vs Angular http post

很困惑 @@