javascript 如何在生产中使用deno

hmae6n7t  于 2022-11-27  发布在  Java
关注(0)|答案(5)|浏览(165)

我在本地pc中尝试了Denohttps://deno.land/)及其一些示例,我们必须在本地环境中执行API之前运行服务器。
我需要在服务器中托管它,以便在请求时调用该API,但我不知道如何做到。
我有在生产模式下托管PHP、.NET的经验,我还没有使用Nodejs,所以我不知道这个过程。

bf1o4zei

bf1o4zei1#

您可以使用您偏好的云提供商AWS、DigitalOcean、Azure...和installdeno,然后您可以使用pm2(使用interpreter标志)在服务器崩溃时自动重新启动和/或在 Boot 时启动服务器。
最简单的方法是创建ecosystem.config.js

module.exports = {
  apps: [
    {
      name: "app",
      script: "./deno.js",
      interpreter: "deno",
      interpreterArgs: "run --allow-net --allow-read",
    },
  ],
};

并使用interpreterArgs传递需要传递给deno的参数。
现在您需要做的就是:

pm2 start

现在你的服务器将在你设置的任何端口上可用。如果你想的话,你也可以使用Nginx作为反向代理。

  • 您也可以使用您喜欢的任何进程管理器 *
lkaoscv7

lkaoscv72#

您可以只用途:

pm2 start index.ts --interpreter="deno" --interpreter-args="run --allow-net"
q3qa4bjr

q3qa4bjr3#

您可以考虑使用官方的denoland/deno Docker image来容器化您的应用程序,如果容器编排平台对于您的特定需求来说是多余的,那么您可以将其部署到AWS Fargate、Kubernetes或者甚至只是运行在静态Linux机器上的Docker上。

# Production Dockerfile that caches
# project dependencies at build time

FROM denoland/deno:1.15.3

ARG postgres_host
ARG postgres_user
ARG postgres_password
ARG postgres_db
ARG postgres_pool_connections

COPY . /microservice
WORKDIR /microservice
USER deno

ENV POSTGRES_HOST=$postgres_host
ENV POSTGRES_USER=$postgres_user
ENV POSTGRES_PASSWORD=$postgres_password
ENV POSTGRES_DB=$postgres_db
ENV POSTGRES_POOL_CONNECTIONS=$postgres_pool_connections

RUN ["deno", "cache", "deps.ts"]
EXPOSE 8000
CMD ["run", "--allow-env", "--allow-net", "service/server.ts"]
t0ybt7op

t0ybt7op4#

只是想分享我使用的命令

pm2 start main.ts --interpreter="deno" --interpreter-args="run --allow-env --allow-net --allow-read --unstable --no-prompt" --name "my-cool-app" -- start --production

您已经知道Deno标志:一个月一个月一个月一个月一个月一个月一个月一个月一个月一个月一个月一个月一个月一个月一个月一个月一个月一个月一个月一个月一个月一个月一个月一个月一个月一个月一个月一个月一个月一个月二个月一个月一个月一个月一个月一个月一个月一个月一个月一个月一个月一个月一个月二个月一个月一个月一个月一个月一个月一个月一个月一个月一个月一个月一个月一个月一个月一个月
--no-prompt禁止Deno询问您是否要启用您的应用中的某些内容需要但您忘记允许的标志。
--name代表pm2。当您运行pm2 listpm2 status时,您会看到应用的名称,而不是某个通用名称。
--production只是我为应用程序提供的一个额外标志。
感谢Aralanswer让我走上了正确的轨道。

yshpjwxd

yshpjwxd5#

您可以使用NodeJS生态系统提供的工具来托管Node应用程序:

  1. Netlify:可以部署您提交的节点应用程序的工具。使用Gitops的概念来触发自动构建。
  2. Surge
  3. Zeit Now/Vercel
    请注意,这些示例适用于静态站点。

相关问题