2016-02-05 88 views
0

我正在使用localhost,並且已正確設置了所有模塊,並且檢查了數據庫的存在。當我輸入localhost:3000/pods/add?firstName ='John'時,應該將它添加到數據庫中,但由於某種原因,它不起作用。已經設置了mongodb,貓鼬等,但是當我嘗試向數據庫添加某些內容時,它實際上並沒有添加它

var express = require('express'); 
var _ = require('underscore'); 
var mongoose = require('mongoose'); 
var podStore = require('./lib/pod-handler.js'); 
var podsLibrary = require('./lib/pods-library.js'); 
var podList = []; 

var mongoPort = 27017; 
var app = express(); 
var port = 3000; 
var router = express.Router(); 
var pods = podsLibrary.list(); 

mongoose.connect('mongodb://localhost:'+mongoPort+'/pods'); 

router.route('/').get(function(request, response) { 
    //console.log('You hit an empty URL .. :('); 
    response.status(503).send("Service Unavailable"); 
}); 

router.route('/lib').get(function(request, response) { 
    //console.log('You hit an empty URL .. :('); 
    response.status(200).send("Cool beans!"); 
}); 

router.route('/pods/list').get(function(request, response){ 
    if(!pods){ 
    return response.status(503).send("Service Unavailable"); 
    } 
    return response.status(200).send(makeReadableList(pods)); 

    function makeReadableList(pods){ 
    var podsHtml = " "; 
    _.each(pods, function(value, key){podsHtml = podsHtml + key}); 
    return podsHtml; 
    } 
}); 

router.route('/pods/add').post(function(request, response){ 
    if (!request.query){ 
    return response.status(400).send("Please give first name"); 
    } 
    var payload = request.query; 
    if (!payload.firstName){ 
    return response.status(400).send("give name"); 
    } 
    podStore.save({ 
    firstName: payload.firstName, 
    lastName: payload.lastName 

    }, function(){ 
    return response.status(200).send(payload.firstName + " has been added!"); 
    var space = " "; 
    _.each(pods, function(value, key) { 
     key + space; 
     return space + payload.firstName + payload.secondName; 
    }); 
    }); 
}); 


router.route('/pods').get(function(request, response) { 
    //console.log("We reached the POD page -- Yay! :D"); 
    response.status(200).send("Server unavailable"); 
}); 


app.use('/', router); 
app.listen(port, function() { 
    console.log('App listening on port %s', port); 
}); 

我檢查了我的代碼無數次,我似乎無法找到問題。

下面是pod-handler文件。

var PodDoc = require('../models/pods.js'); 

module.exports = { 
    save: save 
} 

function save(pod, callback){ 
    var podToSave = new PodDoc(); 
    podToSave.firstName = pod.firstName; 
    podToSave.lastName = pod.lastName; 
    /*podToSave.skills = pod.skills; 
    podToSave.avatarUrl = pod.avatarUrl; 
    podToSave.address = { 
    number: pod.address.number, 
    lineOne: pod.address.lineOne, 
    lineTwo: pod.address.lineTwo, 
    postcode: pod.address.postcode 
    } 
    podToSave.phoneNumbers = { 
    mobile: pod.phoneNumbers.mobile, 
    landline: pod.phoneNumbers.landline 
    }*/ 
    podToSave.save(function(err){ 
    if(err){ 

     console.log(err); 
    } else { 
     console.log("Working"); 
     callback(); 
    } 
    }) 
} 
+0

你如何在'lib/pod-handler.js'中定義你的Mongoose模型? – chridam

+0

只需將pod處理程序的代碼添加到問題中即可。 – illage4

+0

控制檯中是否有任何錯誤? –

回答

0

當我鍵入localhost:3000 /莢/添加的firstName =「約翰」,它應該將它添加到數據庫中 如果我理解正確的,你要打開的網址,瀏覽器,並期望有在數據庫中記錄約翰。 更改路由器請求類型爲GET,這

router.route('/pods/add').post(/*omitted*/); 

這個

router.route('/pods/add').get(/*omitted*/); 

服務器要求POST請求,但沒有FORM元素或Ajax請求的瀏覽器不能處理它,瀏覽器通常使用GET請求,我意思是當你打開你的url時,它發送GET請求到服務器

+0

已經有一個路由器請求類型進入。 – illage4

+0

沒關係,特別是這個url'/ pods/add'目前是POST哪個不行,你必須使用GET –

0

可能有一個錯字誤差在URL中使用的是端口300,其中作爲配置本地主機端口是3000 當我鍵入localhost:300 /豆莢/添加的firstName =「約翰」

+0

是的,在提問時這是一個錯字。對於那個很抱歉。 – illage4

相關問題