Zeit Now教程

了解如何使用Zeit创建的Now平台

Zeit现在被称为威赛尔,而本教程可能已过时

部署Node.js应用程序最简单的方法之一就是通过现在创建的平台时代精神

现在2已启动。本教程着重于此。与Now 1有很多差异在这篇文章中突出显示

现在,使应用程序的部署和分发步骤变得非常非常简单和快捷。您可以将其视为“云”,因为您并不真正知道应用程序的部署位置,但是您知道将拥有一个可以访问它的URL。

您可以使用Now来部署Node.js应用程序,静态网站等。

现在,它不仅支持Node.js(还支持Go,PHP,Python和其他语言),但在本教程中,我将仅考虑该技术。

现在可以免费开始使用了,免费的慷慨计划包括免费SSL,100GB托管,1000无服务器每天执行函数调用,每月进行1000次构建,每月100GB带宽以及使用全局CDN。这定价页面如果您需要更多,可以帮助您了解成本。

安装

最好的方法是安装现在桌面,您可以从中下载https://github.com/zeit/now-desktop。这是一个电子该应用程序还会安装现在的CLI,我们稍后将使用的工具。

这样,您可以使用简单的拖放界面来部署应用程序,非常方便!

提示:您也可以根据需要从命令行安装命令行https://zeit.co/download

开始后,输入您的电子邮件,Now将继续进行身份验证,并向您发送验证电子邮件。

登录后,您可以按照快速教程进行操作:

滚动浏览几个屏幕后,该应用程序将移至菜单栏,单击该菜单时,您将显示活动供稿:

正如您在该图中所看到的,几个月前,我使用该电子邮件帐户安装了Now,但是并没有做太多事情。

使用桌面应用程序登录后,命令行应用程序名为now也将自动登录。

跳进终端,然后运行now

提示:如果您不需要/不需要桌面客户端,也可以只安装nowCLI使用命令npm install -g now。然后,您将继续使用登录now login

立即部署应用程序

对于“应用程序”,我们可以考虑一个简单的HTML文件,或者一个具有许多构建步骤的复杂应用程序。

无论您的应用是什么,都可以运行

now

在一个文件夹中,该文件夹将被上传到云中。

请注意,该文件夹必须包含一个now.json文件(至少)具有以下内容:

{
  "version": 2
}

to make sure the projects runs on Now 2.

一旦您运行now程序,则将应用程序部署到now.sh领域。在这种情况下https://test-8h57iozp1.now.sh我刚刚部署了index.html与文件<p>test</p>在其内容中:

部署后,Now Desktop应用程序将列出此活动

如果现在更改该index.html文件内容并再次运行now,您会得到一个不同的URL为您的应用。

这可能是意外的,对吧?在此之前test-8h57iozp1.now.sh,现在test-m2vcwrsc8.now.sh。和可以访问两个URL。为什么?

预期的行为应该是用新的内容更新旧的URL,但事实并非如此。

现在有这个概念不变性它具有许多优点,包括可以同时测试多个版本的选项,在应用程序的不同部分上工作的多个开发人员,回滚等等。

在生产环境中或要共享应用程序时,需要一个固定的URL。每次更新都无法更改,对吗?为此,您需要创建一个别名

now alias test-m2vcwrsc8.now.sh test-flavio

运行此命令后,test-flavio.now.sh将指向该部署。

每次您要更新此别名指向的部署时,都再次运行命令。通过这种方式,您可以自由地测试驱动器的新发行版,如果可以将其正式发布,则可以更新别名。

回滚到以前的部署也一样,只是别名为旧的部署唯一URL。

要删除部署,请运行now rm <URL>

now rm test-m2vcwrsc8.now.sh

配置Lambda函数

访问特定URL时,我们可以按需执行Node.js应用程序。

例如添加一个test.js包含以下内容的文件:

module.exports = (req, res) => {
  res.end(`Hi!`)
}

In order to make it executable, we must add a build step to now.json:

{
  "version": 2,
  "builds": [{ "src": "test.js", "use": "@now/node" }]
}

Head to https://test-a0onzajf4.now.sh/test.js to see the result (“Hi!”)

The curious thing is that now the index.html file does not load any more like before. This is because the default build step is overwritten, so we need to add one to fix this:

Add the line { "src": "index.html", "use": "@now/static" } to our build:

{
  "version": 2,
  "builds": [
    {
      "src": "test.js",
      "use": "@now/node"
    },
    {
      "src": "index.html",
      "use": "@now/static"
    }
  ]
}

Where to go from here

There’s lots more to find out about Now, but this tutorial will hopefully get you started in the right direction.

Some useful resources for you are


More services tutorials: