Ich habe Probleme mit meinen beiden Routen und das Abrufen/Speichern der Daten mit mongodb. Es scheint Validierungsfehler beim Speichern oder möglicherweise nicht JSON zu veröffentlichen. Irgendwelche Ideen?MEAN-Stack - GET und POST keine Abfrage oder Speichern zu mongodb
Hier ist mein Mungo Schema:
// grab the things we need
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
// create a schema
var sitesEntrySchema = new Schema({
ip: {
type: String,
required: true,
trim: true
},
domain: {
type: String,
required: true,
trim: true
},
wp: {
type: String,
required: true,
trim: true
},
host_name: {
type: String,
required: true
},
hosted: {
type: Number,
required: true
}
});
// make this available to our users in our Node applications
var Site = mongoose.model('Site', sitesEntrySchema);
module.exports = Site;
Und meine Winkel http Anfrage
var app = angular.module('myApp', []);
app.controller('MainCtrl', function($scope, $http) {
$http.get('/api/mongo')
.then(function(response) {
console.log(response.data);
$scope.myData = response.data;
});
});
app.controller('FormCtrl', function($scope, $http) {
$scope.formData = {};
$scope.addSite = function() {
$http.post('/api/create', $scope.formData)
.success(function(data) {
console.log($scope.formData);
$scope.formData = {}; // clear the form so our user is ready to enter another
swal(
'Good job!',
'Site was added!',
'success'
);
})
.error(function(data) {
console.log('Error: ' + data);
});
};
});
Meine express Routen:
var express = require('express');
var router = express.Router();
var Site = require('../models/site');
//Return From Mongo
router.get('/api/mongo', function(req, res) {
Site.find({}, function(err, sites) {
if (err)
res.send(err)
res.send(sites);
});
//res.json({"yo": "yo this shit works"});
});
//Add A Site
router.post('/api/create', function(req, res, next) {
//create object with form input
var siteData = {
ip: req.body.ip,
domain: req.body.domain,
wp: req.body.wp,
host_name: req.body.host_name,
hosted: req.body.hosted
};
// use schema's 'create' method to insert doc into mongo
Site.create(siteData, function(error) {
if (error) {
//return next(error);
res.send(error);
} else {
return res.json({ message: 'Site added!' });
}
});
});
Dank @peaches anmelden können! Ich habe meinen Code aufgeräumt, um Ihren Vorschlägen zu entsprechen, und ich kann jetzt Dokumente erstellen, kann aber immer noch nicht von der Datenbank abholen. Wie kann ich das Fehlerobjekt anzeigen, wenn es in next (err) ist? – Calrocks
@Calrocks Ich nehme an, dass Sie Ihren Server in Entwicklung, wahrscheinlich auf localhost ausführen? Sehen Sie sich die Ergänzungen zu meiner Antwort an, wie Sie die Fehler gut protokollieren können. Wenn sie lokal ausgeführt werden, sollten sie überall dort ausgedruckt werden, wo der Server ausgeführt wird. – peaches