Оба запроса POST / GET приводят к ошибке 404 в Postman.Виноват ли мой экспресс-роутинг? - PullRequest
0 голосов
/ 17 февраля 2019

Я собираюсь настроить сервер Node.js с MongoDB для обработки запросов HTTP CRUD.После настройки моей конечной точки я первоначально мог получать запросы POST / GET, однако обработка объектов документа стала проблемой.После попытки решить эту проблему я теперь не могу POST / GET вообще?Это просто проблема синтаксиса или мой код обречен?

const MongoClient = require('mongodb').MongoClient;
var QRCode = require('qrcode');
var canvasu = require('canvas');
var express = require('express');
var mongoose = require('mongoose')
var app = express();
var port = process.env.PORT || 3000;
var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
var db;
var collection
var Patient = require('./ShiftAssist/models/patientModel');
var router = express.Router();

'' CODE FOR CONNECTION ''

router.get('/patients/:Pnum', function(req,res,next){    
    Patient.findOne({Pnum:req.params.Pnum},function(err,patient){
    if (err) return next(err);
    res.json(patient);
    })
});

app.use('/', router);

app.listen(3000, function () {
    console.log('Example app listening on port ' + port + '!');
});

Ожидается: GET запрос на http://127.0.0.1:3000/patients/XXXXXX сидентификатор документа, возвращает весь документ

Фактически: ошибка тайм-аута

1 Ответ

0 голосов
/ 17 февраля 2019

попробуйте изменить маршрут на /patients/:Pnum, и ваш запрос должен быть http://127.0.0.1:3000/patients/XXXXXX

источник: https://expressjs.com/en/guide/routing.html

РЕДАКТИРОВАТЬ: код, который я использовал до сих пор

var express = require('express');
var app = express();
var router = express.Router();

router.get('/patients/:Pnum', function (req, res, next) {
    setTimeout(() => res.json({ ok: req.params.Pnum }), 1000)
});

app.use('/', router);

app.listen(3000);
...