【发布时间】:2019-07-10 21:57:59
【问题描述】:
我打算用 MongoDB 设置一个 Node.js 服务器来处理 HTTP CRUD 请求。在设置我的端点后,我最初能够接收 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();
'' 连接代码 ''
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 + '!');
});
预期:使用文档标识符对http://127.0.0.1:3000/patients/XXXXXX 的 GET 请求,返回整个文档
实际:超时错误
【问题讨论】:
-
GET http://127.0.0.1:3000/patients/XXXXXX将匹配您的路由器/patients/:Pnum -
不太清楚你的意思。我尝试了 GET 127.0.0.1:3000/patients/XXXXXX 和 127.0.0.1:3000/patients/?Pnum=XXXXXX 并且都产生了 404
-
@CalvinWoo 欢迎来到 Stackoverflow。该帖子表明请求发送到
/patients,?Pnum=...作为查询字符串。 -
@CalvinWoo 您更新的评论表明也尝试了正确的路线。另一件突出的事情是路径是在
router上定义的,而不是在app上。 -
@CalvinWoo 你确定你的
router变量已经被使用了吗?像这样app.use('/', router);
标签: node.js mongodb express postman mean-stack