为什么我的 Vercel 无服务器功能在生产中不起作用?

时间:2021-05-12 09:37:29

标签: serverless vercel

您好,我在 vercel 中部署应用程序时遇到问题,我正在创建一个没有服务器的函数,该函数使用 mongoose 为我带来 mongodb 中的集合数据。在本地一切正常,但是当我部署该功能时,它给了我这个错误:

504: GATEWAY_TIMEOUT
Code: FUNCTION_INVOCATION_TIMEOUT
ID: gru1 :: 594vg-1620811347355-66f311d5c992

我知道 vercel 的免费计划允许您创建最多等待 10 秒的函数,这就是我收到错误的原因吗?或者可能是以下原因之一:https://vercel.com/support/articles/why-does-my-serverless-function-work-locally-but-not-when-deployed

无服务器功能:

import mongoose from "mongoose";
module.exports = function(req, res) {
  const Schema = mongoose.Schema;
  const inmuebleSchema = new Schema({
    user_id: String, //{type: Schema.Types.ObjectId, ref: 'User'}
    desc: String,
    tipo_propiedad: { type: String, enum: ["casa", "quinta", "departamento"] },
    amb: Number,
    estado: { type: String, enum: ["venta", "alquiler"] },
    banios: Number,
    dorm: Number,
    coch: Number,
    direc: String,
    precio: String,
    images: { type: Array, default: [] },
    uploadedDate: { type: Date, default: Date.now() }
  });
  const Inmueble = mongoose.model("inmueble", inmuebleSchema);
  mongoose
    .connect(process.env.MONGODB_URI, {
      useNewUrlParser: true,
      useUnifiedTopology: true
    })
    .then(() => {
      Inmueble.find()
        .exec()
        .then(inmuebles => res.json({ inmuebles }))
        .catch(err => res.json({ status: "error" }));
    })
    .catch(err => {
      res.status(500);
    });
};

1 个答案:

答案 0 :(得分:0)

问题是,我没有将站点的 IP 添加到集群的白名单中。