搜索
首页web前端js教程使用Node和Heroku构建Facebook聊天机器人

构建一个使用 Node.js 和 Heroku 的 Facebook 聊天机器人,由 Joan Yin 和 Camilo Reyes 进行了同行评审。感谢所有 SitePoint 的同行评审员,使 SitePoint 的内容达到最佳状态!

Building a Facebook Chat Bot with Node and Heroku

在去年的 f8 大会上,Facebook 推出了 Messenger 平台,使开发者能够创建能够与 Messenger 上或 Facebook 页面上的人进行对话的机器人。借助机器人,应用程序所有者可以通过提供个性化和交互式通信来更好地与用户互动,这种通信可以扩展到大众。自推出以来,企业和应用程序所有者对聊天机器人表现出了极大的兴趣。在公告发布三个月后,据估计该平台上已经构建了 11,000 个机器人。

聊天机器人不仅使企业和应用程序所有者受益。这些机器人的用户可以享受众多服务,例如:

  • 获取即时客户支持
  • 预订航班
  • 购买电影票
  • 获取 Netflix 电影推荐
  • 获取天气预报
  • 关注新闻
  • 获取穿衣建议
  • 根据手头的食材获得晚餐创意
  • 娱乐

目前对聊天机器人的兴趣和吸引力是显而易见的,随着人工智能技术的改进,机器人将越来越擅长与用户互动。

在本文中,我们将探讨如何创建一个 Facebook 聊天机器人,该机器人可以代表 Facebook 页面通过 Messenger 与用户互动。我们将构建一个机器人,它可以向用户提供有关他们指定的电影的不同详细信息。

关键要点

  • 使用 Node.js 和 Heroku 部署 Facebook 聊天机器人涉及设置一个服务器来与 Facebook Graph API 交互,并配置 webhook 端点来处理消息。
  • 构建简单的基于规则的聊天机器人不需要基本的 AI 或机器学习知识,尽管集成 NLP 可以增强机器人自然地与用户交互的能力。
  • Heroku 平台用于部署,因为它开箱即用地支持 HTTPS,这是 Facebook webhook 验证所必需的。
  • Heroku 中的环境变量对于保护 API 令牌和敏感数据至关重要,确保这些详细信息不会硬编码到应用程序的源代码中。
  • Facebook Messenger 平台允许创建丰富的用户体验,其功能包括欢迎屏幕和“开始”按钮,可以配置这些功能来启动交互。
  • 托管在 mLab 上的 MongoDB 用于管理用户数据和会话状态,确保聊天机器人可以有效地跟踪和响应正在进行的用户交互。
  • 为了让聊天机器人上线并与公众互动,它必须经过并通过 Facebook 的审查流程,以确保符合平台政策和安全标准。

我需要了解 AI 才能构建机器人吗?

熟练掌握 AI 当然会有所帮助,尤其是在构建复杂的机器人方面,但并非必需。您当然可以在不了解机器学习的情况下构建机器人。

您可以构建两种类型的机器人。一种是基于一组规则,另一种是使用机器学习。前者在其可以提供的交互方面受到限制。它只能响应特定命令。这就是我们将要构建的机器人类型。

使用机器学习的机器人,您可以获得更好的用户交互。用户可以像在人与人互动中那样更自然地与机器人互动,而不是仅仅使用命令。机器人也会随着它从与人们的对话中学习而变得更聪明。我们将把构建这种类型的机器人留到以后的文章中。不过,不需要机器学习知识。幸运的是,有一些服务,例如 wit.ai 和 Api.ai,使开发人员能够将机器学习(特别是自然语言处理 - NLP)集成到他们的应用程序中。

开始

您可以从此处下载已完成的演示应用程序的代码。

为了让您的聊天机器人与 Facebook 用户进行通信,我们需要设置一个服务器来接收、处理和发送回消息。服务器将为此使用 Facebook Graph API。Graph API 是进出 Facebook 平台数据的首要方式。服务器必须具有 Facebook 服务器可以访问的端点 URL,因此在本地机器上部署 Web 应用程序不起作用,您必须将其上线。此外,从 Graph API 的 2.5 版开始,对该服务的新订阅必须使用安全的 HTTPS 回调 URL。在本教程中,我们将应用程序部署到 Heroku,因为所有默认的 appname.herokuapp.com 域都已启用 SSL。我们将使用 Node.js 来构建 Web 应用程序。

首先,请确保已在您的计算机上安装 Node。您可以通过在终端中键入 node -v 来检查这一点。如果已安装,它将输出版本号。然后安装 Heroku 命令行界面 (CLI)。稍后我们将使用它来将应用程序推送到 Heroku。使用 heroku --version 验证 CLI 是否已安装。

使用以下命令创建项目目录并初始化 package.json 文件。

<code>$ mkdir spbot
$ cd spbot
$ npm init</code>

按照提示设置您的项目首选项。

生成 package.json 文件后,将其打开并将 start 属性添加到 scripts 对象。这可以让 Heroku 知道要执行哪个命令来启动应用程序。在项目设置期间,我将 app.js 定义为应用程序的入口点,因此我使用 node app.js 作为 start 的值。根据您的项目设置更改此设置。

<code>{
  "name": "spbot",
  "version": "1.0.0",
  "description": "SPBot Server",
  "main": "app.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "node app.js"
  },
  "author": "Joyce Echessa",
  "license": "ISC"
}</code>

安装以下 Node 包。

<code>$ npm install express request body-parser mongoose --save</code>

在项目的根目录中创建一个 .gitignore 文件,并包含 node_modules 文件夹,以防止将其提交。

<code>node_modules</code>

在项目的根目录中,创建一个名为 app.js(如果使用默认名称,则为 index.js)的文件。将其修改如下所示:

var express = require("express");
var request = require("request");
var bodyParser = require("body-parser");

var app = express();
app.use(bodyParser.urlencoded({extended: false}));
app.use(bodyParser.json());
app.listen((process.env.PORT || 5000));

// 服务器索引页面
app.get("/", function (req, res) {
  res.send("已部署!");
});

// Facebook Webhook
// 用于验证
app.get("/webhook", function (req, res) {
  if (req.query["hub.verify_token"] === "this_is_my_token") {
    console.log("已验证 webhook");
    res.status(200).send(req.query["hub.challenge"]);
  } else {
    console.error("验证失败。令牌不匹配。");
    res.sendStatus(403);
  }
});

第一个 GET 处理程序将用于我们自己的测试——了解应用程序是否已成功部署。第二个 GET 处理程序是 Facebook 将用于验证应用程序的端点。代码应查找 verify_token 并使用验证请求中发送的 challenge 进行响应。

您可以将您自己的令牌粘贴到代码中。此类数据最好保存在环境变量中,我们将在 Heroku 上创建项目后立即这样做。

部署到 Heroku

为了让 Facebook 平台连接到我们的后端应用程序,我们首先需要将其上线。

使用以下命令创建一个 Git 存储库并提交项目的文:

<code>$ git init
$ git add .
$ git commit -m "Initial commit"</code>

如果您还没有,请注册一个免费的 Heroku 帐户。

从您的终端登录到 Heroku 并创建一个应用程序。

<code>$ heroku login
$ heroku create
$ git push heroku master
$ heroku open</code>

运行 heroku open 命令后,运行应用程序的链接将在您的默认浏览器中打开。如果一切顺利,您将看到一个页面,其中包含文本“已部署!”。

创建环境变量

在继续之前,让我们在 Heroku 上创建一个环境变量来保存应用程序的验证令牌。

打开您的 Heroku 仪表板并选择您刚刚部署的应用程序。转到应用程序的 设置 并单击 显示配置变量 按钮。输入 VERIFICATION_TOKEN 作为 ,输入您的令牌作为 ,然后单击 添加

Building a Facebook Chat Bot with Node and Heroku

在您的代码中,将您的令牌字符串 ("this_is_my_token") 修改为 process.env.VERIFICATION_TOKEN。提交您的更改并将其推送到 Heroku。

创建 Facebook 页面和应用程序

服务器启动并运行后,我们现在将创建一个 Facebook 应用程序及其关联的页面。您可以创建一个新页面或使用现有页面。

要创建 Facebook 页面,请登录 Facebook 并前往创建页面。从给定的选项中选择页面类型。我选择了 娱乐

Building a Facebook Chat Bot with Node and Heroku

然后选择页面的类别和名称。

Building a Facebook Chat Bot with Node and Heroku

单击 开始 后,将创建页面,并会要求您提供有关您的应用程序的更多详细信息(描述、网站、个人资料图片、目标受众等)。您现在可以跳过这些设置步骤。

Building a Facebook Chat Bot with Node and Heroku

要创建 Facebook 应用程序,请转到添加新应用程序页面,然后单击其他平台选择下方的 基本设置 链接。

Building a Facebook Chat Bot with Node and Heroku

填写必要的详细信息。选择 面向页面的应用程序 作为类别。

Building a Facebook Chat Bot with Node and Heroku

单击 创建 App ID 后,将打开应用程序的仪表板。

Building a Facebook Chat Bot with Node and Heroku

在右侧的 产品设置 中,单击 Messenger 部分中的 开始。然后您将被带到如下所示的 Messenger 设置页面。

Building a Facebook Chat Bot with Node and Heroku

要接收 Messenger 用户发送的消息和其他事件,应用程序应启用 webhook 集成。我们接下来将执行此操作。Webhook(以前称为 实时更新)允许您订阅您想要跟踪的更改并实时接收更新,而无需调用 API。

在 Webhook 部分中,单击 设置 Webhook

输入将发送更新的回调 URL(后端应用程序中定义的端点 URL,即 /webhook),输入验证令牌(在后端应用程序中使用的令牌,即存储在 process.env.VERIFICATION_TOKEN 中的值)并选中所有复选框。这些指定应用程序将订阅哪些事件。我们稍后将了解这些事件的作用。

Building a Facebook Chat Bot with Node and Heroku

成功启用 webhook 后,您应该在 Webhook 部分看到 已完成,以及已订阅事件的列表。如果您收到错误,请确保您已输入 webhook 端点的正确 URL(以 /webhook 结尾),并确保此处使用的令牌与您在 Node 应用程序中使用的令牌相同。

Building a Facebook Chat Bot with Node and Heroku

令牌生成 部分,从下拉菜单中选择您的页面。身份验证后,将为您生成一个页面访问令牌。

Building a Facebook Chat Bot with Node and Heroku

在 Heroku 上创建另一个环境变量,并将其 设置为 PAGE_ACCESS_TOKEN,并将生成的令牌作为 。请注意,生成的令牌不会保存在 Facebook 上显示它的当前页面中。每次访问该网页时,页面访问令牌字段都将为空白,并且当您从页面下拉菜单中选择您的 Facebook 页面时,将生成一个新令牌。但是,任何先前创建的令牌都将继续发挥作用。因此,请确保在关闭网页之前复制令牌。

为了让您的 webhook 接收特定页面的事件,您必须将您的应用程序订阅到该页面。在 Webhook 部分,选择要订阅的页面。

Building a Facebook Chat Bot with Node and Heroku

欢迎屏幕

当用户与您的机器人开始新的对话时,他们首先看到的是欢迎屏幕。此屏幕将显示您页面的名称、描述、个人资料图片和封面照片。您可以通过设置问候文本来自定义屏幕,该文本将代替页面描述使用。您可以使用它来设置介绍性消息,让用户知道可以从您的机器人那里获得什么。

默认情况下,要开始对话,用户会向您的机器人发送第一条消息。但是,您可以启用“开始”按钮,使您的机器人能够发送初始消息。该按钮将向您的服务器发送一个事件,然后您可以对其进行响应。

要设置问候文本,请打开您的页面并转到其 设置

Building a Facebook Chat Bot with Node and Heroku

从左侧面板中选择 消息,然后在右侧面板上打开 显示 Messenger 问候。根据您的喜好设置消息。

Building a Facebook Chat Bot with Node and Heroku

要启用“开始”按钮,请将以下语句中的 PAGE_ACCESS_TOKEN 字符串替换为您的令牌,并将该命令粘贴到终端中。

<code>$ mkdir spbot
$ cd spbot
$ npm init</code>

上述操作向 Facebook Graph API 发出请求。如果请求成功,则“开始”按钮将出现在新对话的欢迎屏幕上。用户点击该按钮将触发 postback received 回调。然后您的机器人可以响应此 postback。

Postback 可以由不同类型的组件触发——Postback 按钮、“开始”按钮、持久菜单或结构化消息。您可以将任何字符串设置为有效负载。在后端,我们将使用此字符串来识别由于点击“开始”按钮而发送的 postback。要接收 postback 消息,您的应用程序必须订阅您 webhook 上的 postback。我们之前在设置 webhook 时通过选中 messaging_postbacks 复选框来执行此操作。

如果成功设置“开始”按钮,您将看到以下响应。

<code>{
  "name": "spbot",
  "version": "1.0.0",
  "description": "SPBot Server",
  "main": "app.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "node app.js"
  },
  "author": "Joyce Echessa",
  "license": "ISC"
}</code>

请记住,“欢迎屏幕”和“开始”按钮仅在新对话中显示。在对机器人进行编码和测试时,您可以通过删除当前对话来开始新的对话。

要处理 postback 消息,请将以下内容粘贴到您的 Node 应用程序中。

<code>$ npm install express request body-parser mongoose --save</code>

每当有人与您的机器人互动或向您的页面发送消息时,都会通过您的 Webhook 集成发送更新。要获取消息,您必须侦听 webhook 上的 POST 调用。所有回调都将发送到此 webhook。

在上面的 POST 处理程序中,我们迭代发送到应用程序的消息条目。有时消息会批量发送在一起,因此一个条目可能包含多个对象。然后,我们遍历每个条目的消息事件并检查其类型。以下是可以发送到应用程序的不同回调消息。

  • 已接收消息回调 – 当一个人向您的机器人发送消息时,将发送已接收消息回调。在设置 webhook 时,您必须已订阅消息事件。
  • 已接收 Postback 回调 – 当一个人点击已配置为向您发送 postback 的按钮时,将发送已接收 Postback 回调。为了从 postback 获取回调,您必须在设置 webhook 时已订阅 messaging_postbacks 事件。
  • 已送达消息回调 – 当页面发送的消息已送达时,将发生此回调。在设置 webhook 时,您必须已订阅 message_deliveries 事件。
  • 身份验证回调 – 当点击 Send-to-Messenger 插件时,将发生此回调。在设置 webhook 时,您必须已订阅 messaging_optins 事件。
  • 已阅读消息回调 – 当页面发送的消息已被用户阅读时,将发生此回调。在设置 webhook 时,您必须已订阅 message_reads 事件。
  • 消息回显回调 – 当您的页面发送消息时,将发生此回调。您可能会收到文本消息或带有附件(图像、视频、音频、模板或备用)的消息。在设置 webhook 时,您必须已订阅 message_echoes 事件。
  • 结账更新回调 (BETA) – 当使用带有灵活金额交易的购买按钮时,将发生此回调。这允许您根据一个人的送货地址更新价格。在设置 webhook 时,您必须已订阅 messaging_checkout_updates 事件。目前,此功能在美国境外不可用。
  • 付款回调 (BETA) – 当一个人点击购买按钮呈现的结账对话框中的付款按钮时,将发生此回调。在设置 webhook 时,您必须已订阅 messaging_payments 事件。目前,此功能在美国境外不可用。

如果事件是 Postback,我们将调用 processPostback() 函数,在该函数中我们将检查有效负载值。请记住,我们将 Greeting 设置为“开始”按钮的有效负载,因此在这里我们首先检查消息事件是否是由于点击该按钮而发送的。如果是,我们将使用用户个人资料 API 获取用户的姓名,并使用它来个性化将发送回他们的消息。从 API 中,您可以获取他们的姓名、姓氏、个人资料图片、语言环境、时区和性别。

然后将消息发送到 sendMessage() 函数,该函数将其发布到 Messenger 平台。在 Webhook POST 处理程序中,我们返回 200 OK HTTP 响应。

尽快返回 200 响应非常重要。Facebook 将在发送下一条消息之前等待 200。在大容量机器人中,返回 200 的延迟会导致 Facebook 将消息传递到您的 webhook 的重大延迟。

如果您的 webhook 返回错误(即不是 2XX 状态)或超时(即响应时间超过 20 秒)并且持续这样做超过 15 分钟,您将收到警告警报。

如果 webhook 继续失败 8 个小时,则 Facebook 将向您发送警报,通知您 webhook 正在被禁用,然后您的应用程序将取消订阅。修复问题后,您必须重新添加 webhook 并将应用程序重新订阅到该页面。

提交更改并将其推送到 Heroku。

要测试机器人,您可以从 facebook.com、Facebook 移动应用程序或使用您的 Messenger 短链接 https://www.php.cn/link/1fd37ce80d495bebcb35e0054d7384fe

在 Facebook 和 Messenger 上,您可以通过搜索页面名称来查找该页面。

Building a Facebook Chat Bot with Node and Heroku

从上面可以看出,您无法始终保证页面的名称是唯一的。您的用户可能会选择错误的页面。为避免这种情况,您可以为页面设置唯一的用户名。为此,请转到您页面的主页,然后从 更多 下拉菜单中选择 编辑页面信息

Building a Facebook Chat Bot with Node and Heroku

然后设置用户名。

Building a Facebook Chat Bot with Node and Heroku

现在,如果您搜索 @page_username,您将获得正确的页面。您还可以访问 https://www.php.cn/link/13f3d8f0b1d534d2ce312263653c5594 来开始互动。

如下所示,您可以看到我们为欢迎屏幕设置的问候文本以及 开始 按钮。

Building a Facebook Chat Bot with Node and Heroku

点击该按钮后,您应该会看到从服务器发送的消息。

Building a Facebook Chat Bot with Node and Heroku

如果您输入任何文本,您将不会收到任何回复。我们接下来将解决这个问题。

设置数据库

当用户输入电影名称时,机器人将使用 Open Movie Database API 获取电影的详细信息。我们将使用的 API 请求只会获取第一个匹配的结果,因此返回的电影可能并不总是用户想要的。因此,机器人将首先与用户确认它是否获得了正确的电影,之后,用户可以获取电影的情节、演员阵容、IMDB 评分等详细信息。他们也可以输入另一个电影名称并获取其详细信息。

由于这种来回互动,机器人需要记住用户的当前电影条目。Facebook 不会与您的 webhook 保持会话打开,因此您在会话对象中存储的任何数据都将在下一个请求中丢失。我们将改为将此数据保存在数据库中——具体来说是 MongoDB。我们将使用 Heroku 上的 mLab 附加组件。

mLab 是 MongoDB 的数据库即服务。在 Heroku 上,虽然您可以使用免费的沙盒 mlab 计划,但您需要在 Heroku 上保存信用卡以进行验证。如果您不想提供您的卡详细信息,那么您可以在 mLab 网站上注册一个帐户,在那里创建一个免费层的沙盒数据库,并从您的代码中链接到该数据库(稍后将详细介绍)。

要在 Heroku 上使用附加组件,请转到应用程序的仪表板并选择 资源 选项卡。搜索 mlab 并选择结果。在弹出的对话框窗口中,从下拉菜单中选择沙盒 - 免费计划,然后单击 预配。您应该会看到所选附加组件的确认。

Building a Facebook Chat Bot with Node and Heroku

如果您检查 Heroku 上的环境变量,您将看到一个已设置 MongoDB URI 的变量。

Building a Facebook Chat Bot with Node and Heroku

通过 mLab 网站设置数据库

如果您更喜欢在 mLab 网站上设置 MongoDB 数据库,请在那里注册一个帐户,然后转到创建新的部署页面。将 计划 设置更改为 单节点,然后从 标准行 部分中选择 沙盒

Building a Facebook Chat Bot with Node and Heroku

为您的数据库设置一个名称,然后单击 创建新的 MongoDB 部署 按钮完成该过程。

Building a Facebook Chat Bot with Node and Heroku

在接下来的页面上,从显示的表格中选择您刚刚创建的数据库。将打开一个页面,其中显示有关如何访问数据库的说明。

选择 用户 选项卡,然后单击按钮 添加数据库用户。填写用户名和密码,然后单击 创建。这将创建一个新的凭据集,您可以使用它来允许您的应用程序访问数据库。

在页面的上半部分,查找并复制数据库 URI——它看起来像 mongodb://:@dsxxxxxx.mlab.com:55087/spbot。插入您刚刚创建的 dbuser 名称和密码。在 Heroku 上,创建一个名为 MONGODB_URI 的环境变量,并将数据库的 URI 粘贴为其值。

定义模型类

回到 Node 应用程序中,创建一个名为 movie.js 的文件并将其保存在名为 models 的文件夹中。将以下内容粘贴到文件中:

<code>$ mkdir spbot
$ cd spbot
$ npm init</code>

上面创建了电影数据库模型。user_id 将是从 Messenger 平台获得的用户 ID,而其他字段将从电影 API 中获取。我们只会存储用户的最后搜索的电影,因此数据库每个用户只有一个记录。

我们可以省略 user_id 字段,而只使用用户的 ID 作为每个创建记录的 _id。这将有效,因为用户 ID 对 Facebook 页面是唯一的。如果您要这样做,您应该知道用户 ID 是页面范围的。这意味着用户的 ID 对给定的页面是唯一的,但用户对不同的页面可能有不同的 ID。

只有当您的机器人为不同的页面提供服务时(是的,一个机器人可以为多个页面提供服务),您才需要知道这一点。因此,如果您的机器人为多个页面提供服务,那么仅通过其用户 ID 来识别用户可能会出现故障,并且使用用户 ID 作为记录的 _id 字段也会出现故障,因为这必须是唯一的,并且您将无法保证跨页面的唯一性。

将所有内容整合在一起

数据库和模型设置好后,我们现在可以完成聊天机器人了。代码将分部分呈现,但如果您想将整个代码粘贴到您的项目中,这里提供了 app.js 文件的链接。

首先设置数据库连接。Mongoose 应该之前已经与其他模块一起安装了。

<code>{
  "name": "spbot",
  "version": "1.0.0",
  "description": "SPBot Server",
  "main": "app.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "node app.js"
  },
  "author": "Joyce Echessa",
  "license": "ISC"
}</code>

修改 webhook 的 POST 处理程序如下所示。

<code>$ npm install express request body-parser mongoose --save</code>

我们添加了对类型为消息的事件的检查,并将它们传递给 processMessage() 函数。

<code>node_modules</code>

在这里,我们首先检查消息是否通过消息回显回调发送。当您的页面发送消息时,将发生此回调。例如,我们发送给用户的第一个消息(问候语)将发送回我们的 Webhook。我们不想处理我们自己的任何消息,因此我们对此进行了检查。

然后我们检查消息是文本还是附件(图像、视频、音频)。对于后者,我们向用户发送错误消息。对于文本消息,我们检查输入是否与某些关键字匹配,这些关键字将指示用户想要电影的哪个细节。此时,用户已经查询了一部电影,并且该电影将保存在数据库中。getMovieDetail() 函数查询数据库并返回特定记录。

var express = require("express");
var request = require("request");
var bodyParser = require("body-parser");

var app = express();
app.use(bodyParser.urlencoded({extended: false}));
app.use(bodyParser.json());
app.listen((process.env.PORT || 5000));

// 服务器索引页面
app.get("/", function (req, res) {
  res.send("已部署!");
});

// Facebook Webhook
// 用于验证
app.get("/webhook", function (req, res) {
  if (req.query["hub.verify_token"] === "this_is_my_token") {
    console.log("已验证 webhook");
    res.status(200).send(req.query["hub.challenge"]);
  } else {
    console.error("验证失败。令牌不匹配。");
    res.sendStatus(403);
  }
});

如果用户的查询与任何已设置的关键字都不匹配,则机器人会假设输入用于电影查询,因此将其传递给 findMovie() 函数,该函数使用输入调用 Open Movie Database API。

<code>$ git init
$ git add .
$ git commit -m "Initial commit"</code>

如果找到电影,则将其详细信息与用户的 ID 一起保存。如果之前已创建具有该用户 ID 的记录,则将对其进行更新。然后我们创建一个结构化消息并将其发送给用户。

除了文本之外,Messenger 平台还允许您发送回图像、视频、音频、文件和结构化消息。结构化消息是支持不同用例的模板。按钮模板允许您发送文本和按钮。通用模板允许您定义图像、标题、副标题和按钮。在我们的应用程序中,我们使用通用模板。

修改 processPostback() 函数如下所示。

<code>$ mkdir spbot
$ cd spbot
$ npm init</code>

以上是使用Node和Heroku构建Facebook聊天机器人的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
Python vs. JavaScript:开发人员的比较分析Python vs. JavaScript:开发人员的比较分析May 09, 2025 am 12:22 AM

Python和JavaScript的主要区别在于类型系统和应用场景。1.Python使用动态类型,适合科学计算和数据分析。2.JavaScript采用弱类型,广泛用于前端和全栈开发。两者在异步编程和性能优化上各有优势,选择时应根据项目需求决定。

Python vs. JavaScript:选择合适的工具Python vs. JavaScript:选择合适的工具May 08, 2025 am 12:10 AM

选择Python还是JavaScript取决于项目类型:1)数据科学和自动化任务选择Python;2)前端和全栈开发选择JavaScript。Python因其在数据处理和自动化方面的强大库而备受青睐,而JavaScript则因其在网页交互和全栈开发中的优势而不可或缺。

Python和JavaScript:了解每个的优势Python和JavaScript:了解每个的优势May 06, 2025 am 12:15 AM

Python和JavaScript各有优势,选择取决于项目需求和个人偏好。1.Python易学,语法简洁,适用于数据科学和后端开发,但执行速度较慢。2.JavaScript在前端开发中无处不在,异步编程能力强,Node.js使其适用于全栈开发,但语法可能复杂且易出错。

JavaScript的核心:它是在C还是C上构建的?JavaScript的核心:它是在C还是C上构建的?May 05, 2025 am 12:07 AM

javascriptisnotbuiltoncorc; saninterpretedlanguagethatrunsonenginesoftenwritteninc.1)javascriptwasdesignedAsalightweight,解释edganguageforwebbrowsers.2)Enginesevolvedfromsimpleterterterpretpreterterterpretertestojitcompilerers,典型地提示。

JavaScript应用程序:从前端到后端JavaScript应用程序:从前端到后端May 04, 2025 am 12:12 AM

JavaScript可用于前端和后端开发。前端通过DOM操作增强用户体验,后端通过Node.js处理服务器任务。1.前端示例:改变网页文本内容。2.后端示例:创建Node.js服务器。

Python vs. JavaScript:您应该学到哪种语言?Python vs. JavaScript:您应该学到哪种语言?May 03, 2025 am 12:10 AM

选择Python还是JavaScript应基于职业发展、学习曲线和生态系统:1)职业发展:Python适合数据科学和后端开发,JavaScript适合前端和全栈开发。2)学习曲线:Python语法简洁,适合初学者;JavaScript语法灵活。3)生态系统:Python有丰富的科学计算库,JavaScript有强大的前端框架。

JavaScript框架:为现代网络开发提供动力JavaScript框架:为现代网络开发提供动力May 02, 2025 am 12:04 AM

JavaScript框架的强大之处在于简化开发、提升用户体验和应用性能。选择框架时应考虑:1.项目规模和复杂度,2.团队经验,3.生态系统和社区支持。

JavaScript,C和浏览器之间的关系JavaScript,C和浏览器之间的关系May 01, 2025 am 12:06 AM

引言我知道你可能会觉得奇怪,JavaScript、C 和浏览器之间到底有什么关系?它们之间看似毫无关联,但实际上,它们在现代网络开发中扮演着非常重要的角色。今天我们就来深入探讨一下这三者之间的紧密联系。通过这篇文章,你将了解到JavaScript如何在浏览器中运行,C 在浏览器引擎中的作用,以及它们如何共同推动网页的渲染和交互。JavaScript与浏览器的关系我们都知道,JavaScript是前端开发的核心语言,它直接在浏览器中运行,让网页变得生动有趣。你是否曾经想过,为什么JavaScr

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器