`快速`应用程序 – 无法使用`邮递员'testing`发布`请求

我创build了一个小型express应用程序。 我只是想testingpost方法。 但它根本不工作。 根据我一切都很好。 但我没有弄清楚这个问题。 任何一个请帮我在这里?

我的server.js文件:

 var express = require('express'); var bodyParser = require('body-parser'); var Post = require('./models/post'); var app = express(); app.use(bodyParser.urlencoded({ extended: true })); app.use(bodyParser.json()); app.get('/api/posts', function( req, res) { res.json([ { username:"dickeyxxx", body : "node rocksxx" } ]) }); app.post('/api/posts', function( req, res, next) { var post = new Post({ username:req.body.username, body:req.body.body }) post.save(function(err, post){ if(err) { return next } res.json(201,post); }) }) app.listen(5000, function(){ console.log('Server Listening on', 5000); }) 

我的post.js:

 var db = require('../db'); var Post = db.model('Post', { username:{type:String, required:true}, body:{type:String,required:true}, date:{type:Date, required:true,default:Date.now} }); module.exports = Post; 

我的db.js:

 var mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/social', function(){ console.log( 'mongoose connected' ); //i am getting consoled }); module.exports = mongoose; 

我与邮差的尝试:

邮递员屏幕快照

有人帮我吗

你的res.json(201,post); 是错的。

如果你想发送状态201然后使用

 res.status(201).json(post); 

请参阅http://expressjs.com/en/api.html#res.json

这样的错误通常是邮差无法实际到达客户端的情况。 它不是典型的快递退货的错误。

当你开始你的快速应用程序,你真的看到

Server Listening on 5000

如果是这样,GET端点是否工作?

如果以上是真的,那么得到这样一个错误的典型方式是你的快速应用程序实际上由于未捕获的exception退出。 当您发送邮递员请求时,您是否在控制台中看到任何错误?

在这些检查之后,向POST端点添加一个console.log('POST endpoint called')并检查它是否实际被调用。

您的POST端点也有问题。

 post.save(function(err, post){ if(err) { return next(err) } // You need to actually return the called next function, not the function itself. return res.json(201,post); // It is commonplace to return the res here to avoid hitting any further code that you might add later. }) 

虽然它不在你的代码示例中(可能是为了简洁),但要确保你有最后一个端点来接收任何错误或404,以便你总是返回一个响应。

 app.all('*', function (req, res, next) { return res.status(404).json({success: false, message: 'Route \'' + req.url + '\' is invalid.'}); }); app.use(function(err, req, res, next) { return res.status(500).json(err); });