![](/img/trans.png)
[英]Mongoose - FindOne and Search inside and Array
[英]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.