Ошибка ссылки с одним из моих маршрутов, хотя он точно такой же, как и у других - PullRequest
0 голосов
/ 07 ноября 2019

Я получаю такую ​​странную ошибку с одним из моих маршрутов, но остальные настроены точно так же, без проблем. мой маршрут /getThePost выбрасывает ReferenceError: getThePost is not defined at Object.<anonymous> (C:\Users\jakob\projects\planum-magic-functions\functions\index.js:13:26)

Я попытался изменить название маршрута, я попытался поместить код в один из других маршрутов, чтобы увидеть, появляется ли там ошибка ссылки (нет), и я попытался переместить блок кода ... но, посмотрев на него, похоже, он должен работать!

Пожалуйста, помогите, ребята.

index.js

const functions = require('firebase-functions');

const app = require('express')();

const FBAuth = require('./util/fbAuth')

const { getAllPosts, createOnePost } = require('./handlers/posts');
const { login } = require('./handlers/users');

// Posts Routes

app.get('/posts', getAllPosts);
app.get('/post/:postId', getThePost);
app.post("/post", FBAuth, createOnePost);

//TODO delete post

//TODO update post

// Login Route

app.post('/login', login)

exports.api = functions.https.onRequest(app)

posts.js

const { db } = require('../util/admin');

exports.getAllPosts = (req, res) => {
  db.collection("posts")
    .orderBy("createdAt", "desc")
    .get()
    .then(data => {
      let posts = [];
      data.forEach(doc => {
        posts.push({
          postId: doc.id,
          name: doc.data().name,
          images: doc.data().images,
          link: doc.data().link,
          info: doc.data().info,
          price: doc.data().price,
          itemCategory: doc.data().itemCategory,
          available: doc.data().available,
          highEnd: doc.data().highEnd,
          createdAt: doc.data().createdAt
        });
      });
      return res.json(posts);
    })
    .catch(err => console.error(err));
};

exports.getThePost = (req, res) => {
  let postData = {};
  db.doc(`/posts/${req.params.postId}`)
    .get()
    .then(doc => {
      if (!doc.exists) {
        return res.status(404).json({ error: "Post not Found" });
      }
      postData = doc.data();
      // postData.postId = doc.id;
      return res.json(postData);
    })
    .catch(err => {
      console.error(err);
      return res.status(500).json({ error: err.code });
    });
};

exports.createOnePost = (req, res) => {
  const newPost = {
    name: req.body.name,
    images: req.body.images,
    link: req.body.link,
    info: req.body.info,
    price: req.body.price,
    itemCategory: req.body.itemCategory,
    available: req.body.available,
    highEnd: req.body.highEnd,
    createdAt: new Date().toISOString()
  };
  db.collection("posts")
    .add(newPost)
    .then(doc => {
      res.json({ message: `document ${doc.id} created successfully` });
    })
    .catch(err => {
      res.status(500).json({ error: "something went wrong" });
      console.error(err);
    });
};

1 Ответ

0 голосов
/ 07 ноября 2019

вы забыли импортировать getThePost метод здесь

const { getAllPosts, createOnePost, getThePost } = require('./handlers/posts');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...