Node.js MongoDB在nodeJS无服务器应用程序中返回空数组
我正在尝试使用作为URL中的参数传递的appId检索应用程序的服务条款。URL应为: apps/{appsId}/tos 使用下面的代码,我通过url参数获得appId,并在mongo的请求中搜索相应的id。但是,当我使用postman进行测试时,结果是一个空数组。 有人能帮我吗 getAppTos库Node.js MongoDB在nodeJS无服务器应用程序中返回空数组,node.js,mongodb,aws-lambda,serverless-framework,serverless,Node.js,Mongodb,Aws Lambda,Serverless Framework,Serverless,我正在尝试使用作为URL中的参数传递的appId检索应用程序的服务条款。URL应为: apps/{appsId}/tos 使用下面的代码,我通过url参数获得appId,并在mongo的请求中搜索相应的id。但是,当我使用postman进行测试时,结果是一个空数组。 有人能帮我吗 getAppTos库 import MongoClient from '../../libs/mongoClient'; const { COLL_TOS, DB_NAME, } = process.env;
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 });
}
};
serverless.yml
getAppTos:
handler: handlers/getAppTos.default
events:
- http:
path: apps/{id}/tos
method: get
cors: true
request:
parameters:
paths:
id: true
“我的收藏”服务中的文档示例:
1。转到CLI会话(MongoShell)并在那里工作,直到您获得获得所需文档ok 2的表达式。将成功从1转换为Postman,在那里工作,直到您拥有与http相关的Get working 3。返回您的JS Get,如果您在JS控制台中记录获取的http表达式,那么您将获得与第2次相同的成功,使用postanthanks@RobertRowntree,我使用了整个方法,在检索应用程序id时犯了一个错误,我放了大括号,我不必这样做!感谢您允许我使用逻辑路径解除阻止我的问题