当前位置: 首页 > 知识库问答 >
问题:

完成后如何停止node.js netlify功能?

朱乐逸
2023-03-14

我在netlify上编写了一个node.js lambda函数,它在FireStore中创建一个文档。当函数被调用时,文档被添加到firestore中,但问题是netlify函数没有返回响应,并且函数没有停止(在netlify dev期间发生错误)。

代码如下:

exports.handler = () => {
  db.collection('collection')
    .add(object)
    .then(() => {
      return JSON.stringify({ success: true });
    })
    .catch((err) => {
      return JSON.stringify({ error: err });
    });
};

我的Netlify Dev日志是:

◈ Netlify Dev ◈
◈ Adding the following env variables from .env: API_KEY,AUTH_DOMAIN,DATABASE_URL,PROJECT_ID,STORAGE_BUCKET,MESSAGING_SENDER_ID,APP_ID,EMAIL,PASSWORD
◈ No app server detected and no "command" specified
◈ Using current working directory
◈ Unable to determine public folder to serve files from
◈ Setup a netlify.toml file with a [dev] section to specify your dev server settings.
◈ See docs at: https://cli.netlify.com/netlify-dev#project-detection
◈ Running static server from "something.com"
◈ Functions server is listening on 58955

◈ Server listening to 3999

   ┌─────────────────────────────────────────────────┐
   │                                                 │
   │   ◈ Server now ready on http://localhost:8888   │
   │                                                 │
   └─────────────────────────────────────────────────┘

Request from ::1: GET /.netlify/functions/funcname
{"level":"error","message":"End - Error:"}
{"errorMessage":"Task timed out after 10.00 seconds","errorType":"TimeoutError","stackTrace":["new TimeoutError (C:\\Users\\Vaibhav\\AppData\\Local\\Yarn\\Data\\global\\node_modules\\lambda-local\\build\\lib\\utils.js:110:28)","Context.<anonymous> (C:\\Users\\Vaibhav\\AppData\\Local\\Yarn\\Data\\global\\node_modules\\lambda-local\\build\\lib\\context.js:110:19)","listOnTimeout (internal/timers.js:554:17)","processTimers (internal/timers.js:497:7)"],"level":"error"}
Response with status 500 in 10917 ms.
◈ Error during invocation: {
  errorMessage: 'Task timed out after 10.00 seconds',
  errorType: 'TimeoutError',
  stackTrace: [
    'new TimeoutError (C:\\Users\\Vaibhav\\AppData\\Local\\Yarn\\Data\\global\\node_modules\\lambda-local\\build\\lib\\utils.js:110:28)',
    'Context.<anonymous> (C:\\Users\\Vaibhav\\AppData\\Local\\Yarn\\Data\\global\\node_modules\\lambda-local\\build\\lib\\context.js:110:19)',
    'listOnTimeout (internal/timers.js:554:17)',
    'processTimers (internal/timers.js:497:7)'
  ],
  level: 'error',
  [Symbol(level)]: 'error',
  [Symbol(message)]: '{"errorMessage":"Task timed out after 10.00 seconds","errorType":"TimeoutError","stackTrace":["new TimeoutError (C:\\\\Users\\\\Vaibhav\\\\AppData\\\\Local\\\\Yarn\\\\Data\\\\global\\\\node_modules\\\\lambda-local\\\\build\\\\lib\\\\utils.js:110:28)","Context.<anonymous> (C:\\\\Users\\\\Vaibhav\\\\AppData\\\\Local\\\\Yarn\\\\Data\\\\global\\\\node_modules\\\\lambda-local\\\\build\\\\lib\\\\context.js:110:19)","listOnTimeout (internal/timers.js:554:17)","processTimers (internal/timers.js:497:7)"],"level":"error"}'
}

共有1个答案

张承颜
2023-03-14

您将收到500代码状态,这意味着服务器出现内部错误。在dev模式下,您有一个响应,因为有一个超过10秒的时间,之后请求完成。可能是请求或参数的问题。

 类似资料:
  • 我有一个计划任务,当应用程序上下文加载时开始工作,并一直运行到程序结束。 我想节省一些资源,只在需要时运行计划任务。 下面是我想象的抽象代码。 我很好奇,有可能达到这样的结果吗?

  • 我想知道如何有效地清理在飞行中创建的akka演员。 要提供一点背景信息: 每个事件创建的演员层次结构。 主管- 在我的应用程序中,主管参与者动态创建其他参与者(在定期事件上)。我想在该事件的处理步骤完成后清理参与者。 所以,一旦处理完成,我想杀死所有的儿童演员。 我在成功完成后以与创建相反的方式传播消息(successfulProcessing)。(1)- 这是主管演员的代码。 这是清理动态创建的

  • 问题内容: 我有一个ScheduledThreadPoolExecutor,可用来计划以固定速率运行的任务。我希望任务以指定的延迟最多运行10次,直到它“成功”为止。之后,我将不希望重试该任务。因此,基本上,当我希望停止计划任务时,需要停止运行它,但又不关闭ScheduledThreadPoolExecutor。知道我会怎么做吗? 这是一些伪代码- 问题答案: 运行此测试,它会打印并停止

  • 问题内容: 快速JUnit问题。我正在运行一些单元测试,其中涉及启动GUI并进行大量工作。 我想在测试后查看结果以目视确认。但是,它到达了代码的结尾并按原样退出。如果要覆盖此设置,请在测试的最后一行放置一个断点。不过,这很尴尬。 有什么选择可以阻止它退出吗? 问题答案: 由于事实上您需要在执行测试期间进行GUI和用户交互,因此这是“功能”测试,而不是“单元”测试。 您可以在最后将结果写入文件,这样

  • 我正在尝试使用Spring批处理和Spring集成在SFTP服务器中上传多个文件。为此,我使用ThreadPoolTaskExector进行并行处理。 在每个进程中执行文件上传,但是即使所有的文件都在SFTP服务器上成功上传,仍然没有停止进程,程序总是保持运行状态。 即使我重写了JobExefftionListener

  • 我经常发现自己使用一个“主”角色,为子任务创建许多子角色。当子任务完成时,主角也应该停止自己。所以当时,我观察子角色并停止主角色context.children.is。 我经常使用这种模式,但因为我从未读过这方面的文章。我不确定,这是一个好主意还是失败的演员有问题。。。? 我已经读过Akka 2中的关机模式,但是这种方法在Java中似乎比我的解决方案更复杂? 以下是我针对具有两个子任务的主要参与者

  • 下面是JobLauncher.run()返回的JobExecution的内容,它发出作业运行成功的信号。 JobExecution:ID=0,Version=2,StartTime=Fri Nov 27 06:05:23 CST 2015,EndTime=Fri Nov 27 06:05:39 CST 2015,LastUpdated=Fri Nov 27 06:05:39 CST 2015,St