是否可以在Vercel中部署NodeJs应用程序?

fsi0uk1n  于 2023-03-17  发布在  Node.js
关注(0)|答案(5)|浏览(812)

我尝试从CLI在Vercel(https://vercel.com,之前是Now)部署一个API(在Node中创建)。但是当我部署应用时,我打开站点,结果只是路径目录中的文件,而不是正在运行的应用。这是我的server.js

{
  "name": "subtitles-api",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "start": "node server.js",
    "pre-deploy": "node deleteLastDeploy.js",
    "deploy": "npm run pre-deploy && now --public && now alias",
    "test": "echo \"Error: no test specified\" && exit 1"
  }
  "engines": {
    "node": ">=6.9"
  },
  "keywords": [],
  "author": "",
  "license": "MIT",
  "dependencies": {
    //list of dependencies
  }
}

要查看完整的API:https://github.com/bitflix-official/subtitles-api

djmepvbi

djmepvbi1#

运行yarn global add now@latest以安装CLI

1.创建一个now.json文件并粘贴

{
  "version": 2,
  "builds": [{
    "src": "./server.js",
    "use": "@now/node-server"
  }],
  "routes": [{"handle": "filesystem"},
    {
      "src": "/.*",
      "dest": "server.js"
    }
  ]
}

注意:将"src": "server.js", && "dest":"server.js"更改为您的服务器条目文件。

1.添加到.gitignore
1.然后在CLI中运行now进行部署。
如果要部署到生产环境,请在CLI中使用now --prod命令进行部署
下面是我部署的一个示例服务器:https://vercel-example-server.now.sh .

6qqygrtg

6qqygrtg2#

在听说Heroku不再提供他们的免费层后,我刚刚部署了一个node.js应用程序(13-09-2022)。
这些是我执行的步骤
1)创建一个vercel.json并添加以下内容

{
  "version": 2,
  "builds": [
    {
      "src": "./index.js",
      "use": "@vercel/node"
    }
  ],
  "routes": [
    
    {
      "src": "/(.*)",
      "dest": "/"
    }
  ]
}

2)转到您的package.json并添加引擎列

{
  "name": "api-make",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "engines": {
    "node": "14.x"
  },

3)不要忘记将脚本中的“start”更改为您的文件名

"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "node index.js"
  },

现在你可以开始了注意:我我不知道为什么,但我有我的文件命名为app.js我得到了一个404错误,我没有改变它为app.js无处不在,我仍然不确定,所以我不得不改变它回到index.js

igsr9ssn

igsr9ssn3#

目前,使用Vercel还不可能有一个依赖于Node的服务器运行的Web应用程序。
Vercel是一个用于静态前端和无服务器功能的云平台。
为了使用Vercel部署节点API,您需要使用它们的无服务器函数。

6pp0gazn

6pp0gazn4#

您应该查看https://github.com/Chuloo/now-express存储库,了解其无服务器样板代码

0yg35tkg

0yg35tkg5#

如果你使用的是ExpressJS,如果你试图根据他们的文档将你的应用程序部署到Vercel,你将只有一个单一的无服务器函数/API。但是这篇文章帮助我为我的Express应用程序中的每一条路线部署了单独的函数。所以你也可以部署一个NodeJS应用程序。我发现这很容易做到。
看到这个你可以部署NodeJS应用程序拆分路由到功能。
https://antappan.medium.com/deploy-express-project-with-multiple-routes-to-vercel-as-multiple-serverless-functions-567c6ea9eb36

相关问题