javascript - express rest api 和 mongoDB 小写查询
问题描述
我用 MongoDB 创建了简单的 Express.js Rest API。我正在使用这个包:https ://www.npmjs.com/package/api-query-params ,除了一件事,一切都很好。我有一个这样的网址:
localhost/properties/?town=LONDON
这将返回伦敦的所有属性,问题在于这是接下来的事情,我需要将值大写(伦敦),我试图实现这个值可以是小写(伦敦),所以最终 URL 将是这样的:
localhost/properties/?town=london
我的路线:
const express = require('express');
const router = express.Router();
const Property = require('../models/Property');
const aqp = require ('api-query-params');
router.get('/all', (req, res, next) => {
const { filter, skip, limit, sort, projection, population, casters } = aqp(req.query, {
casters: {
lowercase: val => req.query.toLowerCase(),
},
});
Property.find(filter)
.skip(skip)
.limit(limit)
.sort(sort)
.select(projection)
.populate(population)
.exec((err, properties) => {
if (err) {
return next(err);
}
res.send(properties);
});
});
module.exports = router;
和 app.js
const express = require('express');
const app = express();
const bodyParser = require("body-parser");
require('dotenv/config');
const mongoose = require('mongoose');
const propertyRoute = require('./routes/property');
const PORT = process.env.PORT || 3000;
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use('/properties', propertyRoute);
//routes
app.get('/', (req, res) => {
res.send('value');
});
mongoose.connect('linkdatabse', {
newUrlParser: true,
})
app.listen(PORT, () => {
console.log(`Server started on port ${PORT}`);
});
我已经根据文档更新了我的路线:https ://www.npmjs.com/package/api-query-params#add-custom-casting-functions 但是,这仍然行不通
任何人都可以尝试帮助我解决这个问题,我做错了什么?
解决方案
推荐阅读
- c++ - C++:catch(...) 是否会遗漏任何异常
- winforms - 如何检查所选行在 DataGridView 中的哪个类
- javascript - 检查常量类型而不加宽类型?
- mysql - SET 的 SQL 查询失败
- ios - mailto:iOS 14 中的方案和自定义邮件客户端
- pyspark - 如何为每个任务(分区)执行一些功能以及为分区中的每个元素执行一些功能?
- php - Curl - 无法检索隐藏的输入字段值
- python - 需要帮助在 Python 中使用 sympy 绘制和查找局部最大值和最小值。第一部分有效,但不知道如何做其他部分
- reactjs - 无法获得未定义的属性“绑定”。Babel 7 + core-js + IE11
- node.js - 从另一个js脚本调用方法时如何处理node-mysql上的数据库延迟