为什么 mongoose return 的 find() 方法出错了?

Why the find() method of mongoose return me err?

服务器 return 我是空的 json,我认为 mongoose 方法 find() 有一些问题,它没有找到任何东西。这是代码:

inde.js:

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

const Folders = require('../bin/models/folders');

router.get('/:id', function (req, res) {
    Folders.find({ 'BeaconId': req.params.id }).exec((err, folders) => {
        if (err) return res.status(500).json({ error: err });
        if (!folders) return res.status(404).json({ message: 'Folder not found' });
        res.json(folders);
    });
});
module.exports = router;

folders.js:

onst mongoose = require('mongoose');

const folderSchema = mongoose.Schema({
    Name_folder: String,
    Link_folder: String,
    BeaconId: Number
});

const Folders = mongoose.model('Folders', folderSchema, 'folders');

module.exports = Folders;

查询参数始终是字符串,因此您可以尝试将 mongooseSchema 中的 BeaconIdNumber 更改为 String

const folderSchema = mongoose.Schema({
    Name_folder: String,
    Link_folder: String,
    BeaconId: String
});

或者您可以将字符串 query.params.id 转换为 number:

{ 'BeaconId': parseInt(req.params.id)}