首页 > 解决方案 > 如何将一些json数据发布到api中的路由

问题描述

我在 NodeJs 中创建了一个非常简单的 API。这是代码:

const Post = require('../models/article');
...
router.post('/contribute', (req, res) => {
    console.log('Pushing new article');
    let userPost = req.body;
    let post = new Post(userPost);
    post.save((error, registeredPost) => {
        if (error) {
            console.log(error);
        } else {
            res.status(200).send(registeredPost);
        }
    })
})
...
module.exports = router;

Post的结构是这样的:

const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const articleSchema = new Schema({
    articleid: String,
    title: String,
    content: String,
    date: String,
    contributor: String,
    upvotes: Number,
    upvoters: [String],
    downvotes: Number,
    downvoters: [String]
})
module.exports = mongoose.model('article', articleSchema, 'articles');

这是server.js

const express = require('express');
const bodyParser = require('body-parser');

const app = express();

const api = require('./routes/api');
const cors = require('cors');

app.use(bodyParser.json());
app.use(cors());

app.use('/api', api);
app.get('/', function(req, res) {
    res.send('Server is up and running!');
})

app.listen((3000), function() {
    console.log('Server listening on heroku environment port');
});

理想情况下,数据应该来自有角度的表单/模板,但在推送代码之前,我想在 Postman 上进行测试。这是屏幕截图:

在此处输入图像描述

我越来越:

无法发布/贡献

请指出我的错误。

标签: node.jsangularexpressnpmpostman

解决方案


因为您正在使用:

app.use('/api', api)

因此,请确保使用此端点:

localhost:3000/api/contribute

现在,它会正常工作。


推荐阅读