2016-02-05 90 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

相关问题