node.js - Piscina 的谷歌云运行中的路径名
问题描述
我已将 Piscina 添加到我的 Node JS 服务器,在本地它可以工作,但是当我将文件上传到 google cloud run 时,它会使用我在 Dockerfile 中指定的目录。
在节点 js 中,我使用:
const piscina = new Piscina({
filename: path.resolve("./") + '/workers/send_payment_by_mail_worker.js'
});
const result = piscina.runTask({_data: this.data});
在 index.js 文件中,我可以使用:
const piscina = new Piscina({
filename: path.resolve( __dirname + '/workers/send_payment_by_mail_worker.js')
});
打印出文件所在的正确位置。在我的 dockerfile 我有:
FROM node:12.18.1
WORKDIR /
COPY package.json package.json
COPY package-lock.json package-lock.json
RUN npm install
COPY . .
CMD [ "node", "index.js" ]
谷歌云运行以 / 作为主目录。您需要如何配置云运行使用正确的文件目录来定位 Piscina 的文件?
我收到的错误是:
2020-11-27T07:56:31.726607ZError [ERR_MODULE_NOT_FOUND]: Cannot find module '/services/action/workers/send_payment_by_mail_worker.js' imported from /node_modules/piscina/dist/src/worker.js
Default
2020-11-27T07:56:31.726628Z at finalizeResolution (internal/modules/esm/resolve.js:284:11)
Default
2020-11-27T07:56:31.726636Z at moduleResolve (internal/modules/esm/resolve.js:665:10)
Default
2020-11-27T07:56:31.726642Z at Loader.defaultResolve [as _resolve] (internal/modules/esm/resolve.js:755:11)
Default
2020-11-27T07:56:31.726648Z at Loader.resolve (internal/modules/esm/loader.js:97:40)
Default
2020-11-27T07:56:31.726654Z at Loader.getModuleJob (internal/modules/esm/loader.js:243:28)
Default
2020-11-27T07:56:31.726660Z at Loader.import (internal/modules/esm/loader.js:178:28)
Default
2020-11-27T07:56:31.726666Z at importModuleDynamically (internal/modules/cjs/loader.js:1081:27)
Default
2020-11-27T07:56:31.726671Z at exports.importModuleDynamicallyCallback (internal/process/esm_loader.js:37:14)
Default
2020-11-27T07:56:31.726678Z at eval (eval at getImportESM (/node_modules/piscina/dist/src/worker.js:37:27), <anonymous>:1:16)
Default
2020-11-27T07:56:31.726684Z at getHandler (/node_modules/piscina/dist/src/worker.js:58:39)
Default
2020-11-27T07:56:31.726919ZuncaughtException
解决方案
推荐阅读
- ionic3 - 在 Ionic3 中关闭 LoadingController
- magento - 自定义 Magento 结帐摘要 (Magento 2.xx)
- amazon-web-services - 为我的 ZF2 应用程序降级 php 版本后运行状况下降
- python-3.x - 无法安装 tensorflow 模型服务器
- flutter - 如何重建浮动操作按钮的 Widget onpress?
- webpack - 为什么我的 React App 不能在 Safari 10.1 中运行?
- html - 为简单的响应式标头编写代码
- php - 如何将以下提交按钮代码重定向到同一页面,如果可能的话不重新加载
- c# - 如何在 Luis Intent Block 中调用 Dialog 类
- c# - jQuery AJAX 没有在 ASP.NET MVC 中调用 AC# 函数