【发布时间】:2025-12-17 20:15:01
【问题描述】:
遵循此架构 cap.model.js :
const mongoose = require('mongoose');
const findOrCreate = require ('mongoose-findorcreate')
const Schema = mongoose.Schema;
let CapSchema = new Schema ({
title: {type: String},
list: {type: Array}
});
CapSchema.plugin(findOrCreate);
module.exports = mongoose.model('Cap', CapSchema);
我想使用以下数据从 get('/url/:param1') 中检索数据:
查找列表包含 param1 的文档,并在数组中返回它们的标题。
找到标题为 param1 的文档,并返回其列表。或者,如果它不存在,请创建文档。在这两种情况下,还返回其标题。
然后我想 console.log : 一侧是标题 (2),另一侧是由标题数组 (1) 和列表 (2) 组成的数组。
我的问题是我找不到或不理解方法 findOrCreate (https://www.npmjs.com/package/mongoose-findorcreate) 以及我必须使用哪些参数。
我的代码目前看起来像这样:
在 route.js 中:
const express = require('express');
const router = express.Router();
const cap_controller = require('../controllers/cap.controller');
router.get('/:param1', cap_controller.cap_get);
module.exports = router;
在 cap.controller.js 中:
const Cap = require('../models/cap.model');
const foc = Cap.findOrCreate({},
function(err, cap) {
console.log(req.params.word + ' has been created !', word.main);
},
'title list');
exports.cap_get = function (req, cb) {
let capTitle = req.params.param1;
cb(capTitle);
};
我一直不明白什么时候方法需要参数以及回调函数需要什么样的参数。
【问题讨论】:
-
试试这个链接:*.com/questions/7334390/…
标签: javascript node.js methods mongoose find