2014-08-29 122 views
0

我遇到了一个问题,我试图通过Postman运行POST请求,并且我得到一个很长时间的加载请求,然后是一条Could not get any response消息。没有出现在终端的错误。这是我保存POST的方式吗?具体看我的/博客路线。ExpressJS POST方法请求问题

server.js

//Load express 
var express = require('express'); 
var app = express(); 
var router = express.Router(); // get an instance of the router 
var bodyParser = require('body-parser'); 
var mongoose = require('mongoose'); 
// configure app to use bodyParser() 
// get data from a POST method 
app.use(bodyParser.urlencoded({ extended: true})); 
app.use(bodyParser.json()); 

var port = process.env.PORT || 8080; // set the port 


var blogDB = require('./config/blogDB.js'); 

var Blogpost = require('./app/models/blogModel'); 

app.set('view engine', 'ejs'); // set ejs as the view engine 

app.use(express.static(__dirname + '/public')); // set the public directory 



var routes = require('./app/routes'); 
// use routes.js 
app.use(routes); 


app.listen(port); 
console.log('magic is happening on port' + port); 

blogModel.js:

var mongoose = require('mongoose'); 
var Schema  = mongoose.Schema; 

var BlogPostSchema = new Schema({ 
     title : String, 
     body : String, 
     date_created : Date 
}); 

module.exports = mongoose.model('Blogpost', BlogPostSchema); 

routes.js:

var express = require('express'); 
var router = express.Router(); 
var blogDB = require('../config/blogDB.js'); 
var Blogpost = require('./models/blogModel.js'); 

//index 
    router.route('/') 
    .get(function(req, res) { 
    var drinks = [ 
      { name: 'Bloody Mary', drunkness: 3 }, 
      { name: 'Martini', drunkness: 5 }, 
      { name: 'Scotch', drunkness: 10} 
     ]; 

     var tagline = "Lets do this."; 

     res.render('pages/index', { 
      drinks: drinks, 
      tagline: tagline 
     }); 
    }); 

//blog 
    router.route('/blog') 

     .get(function(req, res) { 
      res.send('This is the blog page'); 
     }) 

     .post(function(req, res) { 

      var blogpost = new Blogpost(); // create a new instance of a Blogpost model 
      blogpost.title = req.body.name; // set the blog title 
      blogpost.body = req.body.body; // set the blog content 
      blogpost.date_created = Date.now(); 

      blogpost.save(function(err) { 
       if (err) 
        res.send(err); 

       res.json({ message: 'Blog created.' }); 
      }); 

     }); 




//about 
    router.get('/about', function(req, res) { 
      res.render('pages/about'); 
    }); 


module.exports = router; 
+0

您是否尝试在回调函数中向控制台输出内容?是否定义了“blogpost”? 'save'方法是否成功? – 2014-08-29 08:50:31

+0

@WaldoJeffers'blogpost'在'router.route('/ blog')'的post方法中定义。当我在Postman中运行一个post请求时,我得到一个永不停息的长时间加载...通知。没有发布说明“Blog created.'的消息,我用它作为成功消息。这可能是我如何设置mongodb配置的问题吗? – cphill 2014-08-29 20:43:01

回答

0

的问题是,我没有设置用户对我的Mongo的数据库。基本上它无法访问我正在使用的数据库的user/pw。一旦我创建了一个匹配我包含在我的url中的用户/密码的用户,我就能够获得一个成功的帖子。