Lorsque j'essaie de publier sur la base de données, l'erreur suivante s'affiche: 'POST/api/postCampaign' et POST http://127.0.0.1:50945/api/postCampaign 404 (non trouvé). J'essaye de stocker des données dans la base de données de mongodb. Ce code a l'habitude de fonctionner et le mongoose a été connecté à la base de données de module mais après quelque temps j'essaye de refaire le code mais le modulus.io n'est plus disponible, ainsi j'ai changé l'URI de connexion. Je ne sais pas s'il y a autre chose que je suis absentNoeud JS MongoDB POST Erreur
Voir mes codes
server.js
var express = require('express');
var app = express();
var mongoose = require('mongoose');
var morgan = require('morgan');
var bodyParser = require('body-parser');
var port = process.env.PORT || 3000;
//Database connection
mongoose.connect('mongodb://localhost/myappdatabase');
app.use(express.static(__dirname + '/public'));
app.use(express.static(__dirname + '/dist'));
app.use(bodyParser.urlencoded({'extended':'true'}));
app.use(bodyParser.json());
app.use(bodyParser.json({ type: 'application/vnd.api+json' }));
app.use(morgan('dev'));
//Database Schema/Model
var Schema = mongoose.Schema;
var campaignSchema = new Schema({
goalAmount: String,
campaignTitle: String
});
var Campaign = mongoose.model('Campaign', campaignSchema);
//Routes
app.get('/startCampaign', function(req, res){
res.sendfile('./public/views/start-campaign.html');
});
app.post('/api/postCampaign', function(req, res) {
Campaign.create({
goalAmount : req.body.goalAmount,
campaignTitle: req.body.campaignTitle,
done : false
});
});
app.listen(port);
console.log('App listening on port' + port);
MainController.js
appTitan.controller('mainController', ['$scope', '$http', function($scope, $http){
// Signup form
$scope.form = 'signup';
$scope.switchForm = function(newForm){
$scope.form = newForm;
};
// Start camapaign
$scope.startCampaignData = {};
$scope.createCampaign = function(){
$http.post('/api/postCampaign', $scope.startCampaignData)
.success(function(data) {
console.log(data);
})
.error(function(data) {
console.log('Error: ' + data);
});
};
}]);
forme Page
<form action="">
<div class="form-group">
<label for="goal_amount">How much money would you like to raise?</label>
<input type="text" name="goal_amount" id="goal_amount" ng-model="startCampaignData.goalAmount">
<select name="goal_amount" id="goal_amount">
<option value="GBP">GBP</option>
<option value="USD">USD</option>
</select>
</div>
<div class="form-group">
<label for="campaign_title">What's the tile of your campaign?</label>
<input type="text" name="campaign_title" id="campaign_title" ng-model="startCampaignData.campaignTitle">
</div>
<div class="form-group">
<label for="goal_amount">Choose a category</label>
<select name="campaign_category" id="campaign_category">
<option value="">Choose a category</option>
<option value="USD">USD</option>
</select>
</div>
<div class="form-group">
<button ui-sref="form.stepTwo">CREATE</button>
<button type="submit" ng-click="createCampaign()">Submit Test</button>
</div>
</form>
J'ai ajouté que à la fois post et post server.js angulaire mais il retourne: net :: ERR_CONNECTION_REFUSED et erreur: null – billgajen
Désolé, je ne l'ai pas Comprenez ce que vous avez changé. Je pense que le code de votre question fonctionnera si vous changez seulement votre URL d'API de 'http: //127.0.0.1: 50945' à' http: // localhost: 3000' – poohitan
Merci pour votre réponse @poohitan. L'URI mongoose.connect que j'ai envoyé est juste un échantillon. Où je suis en train d'essayer de stocker les données est mongodb: //: @ 123456.mlab.com: 222288/x xxxxx. Dois-je encore changer l'URL de l'API? –
billgajen