при вызове метода router.post из URL-адреса получается ошибка 404, не найденная в express. js - PullRequest
0 голосов
/ 14 февраля 2020

У меня проблема с Express, я пытаюсь использовать функцию app.post (), но она не работает, и я не знаю почему ...

Несмотря на то, что я включил the bodyParser () ...

Возвращает 404 страница не найдена ошибка

var express = require('express');

var MongoClient = require('mongodb').MongoClient;

var router = express.Router();

router.post("/hello",(req, res) => {
        res.send('POST CALL');
    });

/* GET home page. */
router.get('/', function(req, res, next) {
    MongoClient.connect('mongodb://localhost:27017/nicky', function (err, client) {
        if (err) throw err

        var db = client.db('nicky')

        db.collection('student').find().toArray(function (err, result) {
            if (err) throw err
            res.send(JSON.stringify(result));
        })
    })
});
module.exports = router;

GET работает правильно, но POST не работает.

Ответы [ 3 ]

0 голосов
/ 14 февраля 2020

Может быть, вы забыли использовать app.use ('/', require ('import route here')); в основном приложении.

0 голосов
/ 14 февраля 2020

Я не уверен, как выглядит остальная часть вашего кода, но я скопировал предоставленный вами фрагмент, и он работает следующим образом:

express -post. js:

const express = require('express');
const router = express.Router();

// curl -X POST http://localhost:3000/bar/hello
router.post("/hello",(req, res) => {
    res.send('It is POST');
});

// curl -X GET http://localhost:3000/bar/hi
router.get('/hi', function(req, res, next) {
    res.send('It is GET');
});

module.exports = router;

express -post-сервер. js:

const express = require('express');
const bar = require('./express-post');
const app = express();

// curl -X GET http://localhost:3000/foo
app.get('/foo', function (req, res, next) {
    res.send('This is foo GET!');
});

// register
app.use('/bar', bar);

app.listen(3000);

Для полного выполнения примера клона node-cheat и узел запуска express -пост.

0 голосов
/ 14 февраля 2020

Возможно, вам не нужен и инициализирован парсер тела! Просто подтвердите один раз, если вы включили это:

  const bodyParser = require('body-parser');
  // support parsing of application/json type post data
  app.use(bodyParser.json());

  //support parsing of application/x-www-form-urlencoded post data
  app.use(bodyParser.urlencoded({ extended: true }));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...