[英]Express Post Request returns 404 status
我正在使用express,mongoose和node.js创建一个API。 我在为我的一个馆藏建立后期请求端点时遇到问题。 我有一个使用猫鼬定义的付款模式,并在我的服务器文件中对该集合进行了过帐请求。 我已经仔细检查了文件的路径,它们是正确的。 我使用邮递员向API发送类似的发帖请求:
{类型:“ cdvdsvd”}
这给我一个错误404。请帮助
//Mongoose file var mongoose = require('mongoose'); mongoose.Promise = global.Promise; mongoose.connect("mongodb://localhost:27017/CSapp", { useNewUrlParser: true }); module.exports = { mongoose };
//Collection Schema var {mongoose} = require('../db/mongoose'); var Payments = mongoose.model('Payments', { type: { type: String, default: 'Incoming' }, Date_Entry: { day: Number, month: String, year: Number }, Due_date: { day: Number, month: String, year: Number }, Amount: { type: Number, }, Party: { type: String, }, Category: { type: String, }, Description: { type: String, } }); module.exports = { Payments };
//Server file const express = require('express'); const body_parser = require('body-parser'); const _ = require('lodash'); const {mongoose} = require('./db/mongoose'); const {Payments} = require('./models/payment'); const {Budgets} = require('./models/Budgets'); var port = 3000 || process.env; var app = express(); app.use(body_parser.urlencoded({ extended: false })); //POST REQUESTS //POST Payments app.post('/payments', (request, response) => { var payment = new Payments({ type: request.body.type }); payment.save().then((docs) => { response.send(docs); console.log(docs); }, (e) => { response.status(404).send(e); }); }); app.listen(port, () => { console.log('Server initiated. Now listening on port: ' + port); }); module.exports = { app };
根据Mongoose文档 ,您可以通过两种方式查看Payment
是否正确保存或过程中有错误。
他们是:
- 回呼
要使用回调, save()
函数必须将回调作为参数,并且回调应采用两个参数,即err
和docs
。 像这样。
payment.save((err, docs) => {
if (err) {
return response.status(404).send(err);
}
response.send(docs);
console.log(docs);
})
- 承诺
在使用promise时,我们必须将一个then()
函数链接到save()
并捕获这样的错误。
payment.save().then((docs) => {
response.send(docs);
console.log(docs);
}).catch((e) => response.status(404).send(e));
console.log(err);
最好在if
块下尝试打印err对象。 save()
函数,因为您在此处使用new
关键字。 如果这不能解决问题,请告知错误和数据对象包含哪些内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.