Я создал простой Express. js Rest API с MongoDB. Я использую этот пакет: https://www.npmjs.com/package/api-query-params и все работает очень хорошо, за исключением одной вещи. У меня есть URL-адрес, как это:
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;
И приложение. 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 но, тем не менее, это не работает
Может кто-нибудь попытаться помочь мне с этим, что я делаю не так?