2017-09-06 12 views
0

DB에 게시하려고하면 'POST/api/postCampaign'및 POST http://127.0.0.1:50945/api/postCampaign 404 (찾을 수 없음) 오류가 표시됩니다. mongodb 데이터베이스에 데이터를 저장하려고합니다. 이 코드는 작동하는 데 사용되었고 몽구스는 모듈 데이터베이스와 연결되어 있었지만 언젠가는 코드를 다시 실행하려고했지만 modulus.io는 더 이상 사용할 수 없으므로 연결 URI를 변경했습니다. 내가노드 JS MongoDB POST 오류

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); 
      }); 
    }; 
}]); 

양식 페이지

<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> 

답변

3

당신

server.js 내 코드를 참조하십시오

을 잃었 무엇이 있는지 확실하지 시도하다 데이터베이스에 HTTP 요청을합니다. 그것은 심지어 불가능합니다. Node 서버에 데이터를 쓰는 요청을해야합니다.

시도가이 엔드 포인트에 요청을 보내 : http://localhost:3000/api/postCampaign

+0

내가 server.js 포스트 및 각 포스트하지만 모두가 반환 추가 한 : :: 순 ERR_CONNECTION_REFUSED 및 오류 : 널 (null) – billgajen

+0

미안 해요, 난하지 않았다 당신이 바꾼 것을 이해하십시오. 제 생각에는 http : //127.0.0.1 : 50945'에서'http : // localhost : 3000'으로 API url 만 변경하면 코드가 작동합니다. – poohitan

+0

답장을 보내 주셔서 감사합니다. @poohitan. 내가 보낸 mongoose.connect URI는 예제 일뿐입니다. 실제로 데이터를 저장하려고하는 곳은 mongodb : // : @ 123456.mlab.com : 222288/xxxxx입니다. API URL을 변경해야합니까? – billgajen