#node.js #mongodb #aws-lambda #serverless-framework #serverless
#node.js #mongodb #aws-lambda #бессерверный фреймворк #бессерверный
Вопрос:
Я пытаюсь получить условия предоставления услуг для приложения, используя AppID, переданный в качестве параметра в URL. URL-адрес должен быть: apps/{appsId}/tos С помощью приведенного ниже кода я получаю AppID через параметры url и ищу в запросе mongo соответствующий идентификатор. Однако, когда я тестирую с postman, я получаю пустой массив. Кто-нибудь может мне помочь?
getAppTos lib
import MongoClient from '../../libs/mongoClient';
const {
COLL_TOS,
DB_NAME,
} = process.env;
export const getAppTos = async (appId) => {
const client = await MongoClient.connect();
try {
const tosbyapp = await client
.db(DB_NAME)
.collection(COLL_TOS)
.find({
appIds: { $elemMatch: { $eq: appId } },
}).toArray();
return tosbyapp;
} finally {
client.close();
}
};
Обработчик getAppTos
import { getAppTos } from '../lib/getAppTos';
import response from '../../libs/httpResponses/response';
export default async (event) => {
const { appId } = event.pathParameters.id;
try {
const results = await getAppTos(appId);
if (results === false) {
return response({ code: 404, message: 'tos_not_found' });
}
return response({ code: 200, body: results });
} catch (e) {
return response({ code: 500, message: e.message });
}
};
бессерверный.yml
getAppTos:
handler: handlers/getAppTos.default
events:
- http:
path: apps/{id}/tos
method: get
cors: true
request:
parameters:
paths:
id: true
Комментарии:
1. 1. перейдите в сеанс CLI (оболочка mongo) и работайте там до тех пор, пока у вас не будет выражения, которое получает необходимый документ в порядке 2. переведите success с 1 на Postman , работая там, пока не заработает http, связанный с Get 3. вернитесь к своему JS Get и, если вы запишите в консоль http-выражение длявыборка в JS, тогда вы должны получить тот же успех, что и в 2 с postman
2. Спасибо @RobertRowntree , я использовал весь этот метод, и я допустил ошибку, когда извлек идентификатор приложения, я поставил фигурные скобки, и мне не нужно было! спасибо, что позволили мне разблокировать мою проблему с помощью логического пути