Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js MongoDB在nodeJS无服务器应用程序中返回空数组_Node.js_Mongodb_Aws Lambda_Serverless Framework_Serverless - Fatal编程技术网

Node.js MongoDB在nodeJS无服务器应用程序中返回空数组

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;

我正在尝试使用作为URL中的参数传递的appId检索应用程序的服务条款。URL应为: apps/{appsId}/tos 使用下面的代码,我通过url参数获得appId,并在mongo的请求中搜索相应的id。但是,当我使用postman进行测试时,结果是一个空数组。 有人能帮我吗

getAppTos库

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时犯了一个错误,我放了大括号,我不必这样做!感谢您允许我使用逻辑路径解除阻止我的问题