代码之家  ›  专栏  ›  技术社区  ›  chichi

将数组传递给axios.获取请求从Mongoose检索数据

  •  1
  • chichi  · 技术社区  · 5 年前

      static async getUserInitialPlace(favCategories, userCoordinates) {
        try {
          const places = await Place.aggregate([
            {
              $geoNear: {
                near: { type: 'Point', coordinates: userCoordinates },
                distanceField: 'calcDistance',
                maxDistance: 2500000,
                spherical: true,
                query: {
                  category: {
                    $in: [favCategories],
                  },
                },
              },
            },
          ]);
          return places;
        } catch (err) {
          return console.log(err);
        }
      }
    

    我的红色传奇看起来像这样

    function* getUserInitialPlace({ favCategories, userCoordinates }) {
      const req = {
        params: {
          coordinate: userCoordinates,
          sports: favCagetories,
        },
      };
      try {
        const response = yield axios.get(
          `${config.baseUrl}/places/getuserinitialplace`,
          req
        );
    

    我把下面的数据传给我的复制人

      getUserInitialPlace([user.categories], [user.location_coordinates.lng, user.location_coordinates.lat]);
    
    {type: "REQUEST_GET_USER_INITIAL_PLACE", favCategories: Array(1), userCoordinates: Array(2)}
    favCategories: Array(1)
    0: "5e5150c6c52a3904b74d6ff7"
    type: "REQUEST_GET_USER_INITIAL_PLACE"
    userCoordinates: Array(2)
    0: -86.158068
    1: 39.768403
    

    "GET /places/getuserinitialplace?coordinate[]=126.7052062&coordinate[]=37.4562557&favCategories[]=[%225e5150bcc52a3904b74d6ff6%22,%225e5150d6c52a3904b74d6ff8%22,%225e5150c6c52a3904b74d6ff7%22,%225e5150ffc52a3904b74d6ffc%22]
    

    如何发送[]部分内的参数或正确格式化mongoose的请求链接以继续get请求?

    1 回复  |  直到 5 年前
        1
  •  1
  •   Robert Cooper    5 年前

    我想你可以调整一下 params 为了达到你想要的结果:

    const req = {
      params: {
        coordinate: `[${userCoordinates.join(",")}]`,
        sports: `[${favCagetories.join(",")}]`,
      },
    };