如果我的格式關閉,請提前抱歉!我正在使用 MongoDB、Mongoose 和 Express 構建一個專案。現在我正在嘗試使用 Mongoose 從 MongoDB 資料庫中讀取檔案。出于某種原因,它在我從資料庫中獲取的檔案前面加上了“slug”這個詞。我得到的結果是這樣的: [{"slug":"","title":"test","id":"62002ba44b05edb74c1a9cd8"}]
當我應該得到的結果是: [{"title":"test","id":"62002ba44b05edb74c1a9cd8"}]
我在想我正在使用的一個庫有一個意想不到的副作用,但我不知道是什么原因造成的。在我呼叫 res.render("Test", testRes) 之前就是這樣,所以它甚至可能以某種方式來自資料庫?我已經為此困擾了好幾個小時了。
const express = require('express');
const router = express.Router();
const mongoose = require('mongoose');
const Test = mongoose.model('Test');
const sanitize = require('mongo-sanitize');
router.get('/test/:testSlug', async function(req, res) {
const testSlug = req.params.testSlug;
const testSearchParam = {
slug: sanitize(testSlug)
};
console.log("search param", testSearchParam.slug);
const testRes = await Test.find(
{
title: testSearchParam.slug
}
);
res.render("Test", testRes);
});
module.exports = router;
and here is my schema for the Test data format:
const mongoose = require('mongoose');
const URLSlugs = require('mongoose-url-slugs');
const { toJSON } = require('../plugins');
const TestSchema = new mongoose.Schema({
title: {
type: String,
required: true
}},
{
collection: 'test'
}
);
TestSchema.plugin(URLSlugs('title'));
TestSchema.plugin(toJSON);
/**
* @typedef Test
*/
const Test = mongoose.model('Test', TestSchema);
module.exports = Test;
uj5u.com熱心網友回復:
由于您使用的是mongoose-url-slugs,因此該包具有在 mongoose 模式中創建 slug 欄位的默認選項。
addField (默認: True) - 將 slug 欄位添加到 mongoose 模式。
見這里:https ://www.npmjs.com/package/mongoose-url-slugs#options-and-defaults
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/426931.html
上一篇:如何查詢嵌套物件
下一篇:剃刀頁面:如何使用外鍵制作模型
