Получение не может POST / ошибка в Express

У меня есть RESTful API, который я использую почтальоном, чтобы позвонить на мой маршрут / веб-сайты. Всякий раз, когда я звоню, почтальон говорит: "Не удается POST / веб-сайты". Я пытаюсь реализовать очередь заданий, и я использую Express, Kue(Redis) и MongoDB.

Вот мой файл маршрутов:

'use strict';
module.exports = function(app) {
// Create a new website
const websites = require('./controllers/website.controller.js');
app.post('/websites', function(req, res) {
  const content = req.body;
  websites.create(content, (err) => {
    if (err) {
      return res.json({
        error: err,
        success: false,
        message: 'Could not create content',
      });
    } else {
      return res.json({
        error: null,
        success: true,
        message: 'Created a website!', content
      });
    }
  })
});
}

Вот файл сервера:

const express = require('express');
const bodyParser = require('body-parser');
const kue = require('kue');
const websites = require('./app/routes/website.routes.js')
kue.app.listen(3000);

var app = express();

const redis = require('redis');
const client = redis.createClient();
client.on('connect', () =>{
  console.log('Redis connection established');
})

app.use('/websites', websites);

Я никогда не использовал Express, и я понятия не имею, что здесь происходит. Любое количество помощи было бы здорово!! Спасибо!

1 ответ

Решение

Проблема в том, как вы используете app.use и app.post. У тебя есть.

app.use('/websites', websites);

А внутри сайтов у вас есть:

app.post('/websites', function....

Таким образом, чтобы получить этот код, вам нужно сделать сообщение localhost:3000/websites/websites, Что вам нужно сделать, это просто удалить /websites от ваших маршрутов.

//to reach here post to localhost:3000/websites
app.post('/' , function(req, res) {

});
Другие вопросы по тегам