簡體   English   中英

貓鼬的findOne函數返回null / undefined

[英]Mongoose findOne function returns null/undefined

當通過我的/authenticate路由從數據庫中獲取數據時,我總是得到null / undefined 連接成功,並且用戶存在於數據庫中(已通過Robo 3T檢查)。 以下是代碼摘錄:

var express = require("express");
var app = express();
var router = express.Router();
var mongoose = require("mongoose");
var user = require("../models/user");
var bodyParser = require("body-parser");
app.use(bodyParser.json());

router.post('/authenticate', function(req, res) {    
   user.findOne({ name: req.body.name }).then(function(foundUser) {
       if (!foundUser) { return res.status(404).send("No user matching name"); }
       return res.status(200).json(foundUser);
   });
});

這是我從郵遞員執行的請求:

在此處輸入圖片說明

編輯答案:

為了快速解析除json之外的表單數據,您需要向應用程序添加第二個正文解析器:

var app = require('express');
var bodyParser = require('body-parser');

// Enable express to parse body data from raw application/json data
app.use(bodyParser.json());

// Enables express to parse body data from x-www-form-encoded data
app.use(bodyParser.urlencoded({ extended: false }));

req.body.name可能為null,因此findOne()可能返回null

var query = user.findOne({name: req.params.name});

它取決於您的路由調用方法,嘗試使用req.params.name

嘗試在服務器上的mongo shell中進行測試。 打印db.user.find(); 並檢查您的用戶

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM