📜  使用 API 使用纯 JavaScript 创建报价生成器 Web 应用程序(1)

📅  最后修改于: 2023-12-03 15:22:09.461000             🧑  作者: Mango

使用 API 使用纯 JavaScript 创建报价生成器 Web 应用程序

本文将介绍如何使用 API 和纯 JavaScript 创建一个报价生成器 Web 应用程序。我们将会用到以下知识:

  • HTML 和 CSS 基础知识
  • JavaScript 的基础知识
  • 如何使用 API、Ajax 和 JSON
  • Node.js 和 Express 框架的基础知识
前言

报价生成器通常是一个必不可少的工具,它可以帮助你快速、自动化地为你的客户生成报价单。这使你在你的业务中更专业,同时还可以为你省下时间和精力。

在这个项目中,我们将创建一个简单的报价生成器,它将使用 API 和纯 JavaScript 来承载。我们将使用一个公共 API 来获取产品的价格和信息,然后我们将使用纯 JavaScript 来将这些信息呈现在我们的 Web 应用程序上。

准备工作

在开始创建报价生成器之前,我们需要准备我们的开发环境。首先,你需要确保你的机器上已经安装了最新的 Node.js 和 npm。你可以在终端中输入以下命令来验证它们是否安装:

node --version
npm --version

接下来,我们需要创建一个 JavaScript 文件来作为我们应用程序的入口,同时我们需要一些 HTML 和 CSS,用于将它们与 JavaScript 结合起来。

我们还需要引入一些其他的 JavaScript 库来帮助我们完成这个项目。其中包括:

设计页面结构

我们将首先设计我们程序的页面结构,包括 HTML 和 CSS。我们将采用 Bootstrap 框架来帮助我们创建一个响应式的用户界面,以便应用程序可以在不同大小的屏幕上进行展示。

Markdown代码片段:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>报价生成器</title>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
</head>
<body>
  <div class="container">
    <div class="row">
      <div class="col-md-12">
        <div class="page-header">
          <h1>报价生成器</h1>
        </div>
        <form id="quoteForm">
          <div class="form-group">
            <label for="productCode">产品代码</label>
            <input type="text" class="form-control" id="productCode" name="productCode">
          </div>
          <div class="form-group">
            <label for="productQuantity">产品数量</label>
            <input type="number" class="form-control" id="productQuantity" name="productQuantity">
          </div>
          <button type="submit" class="btn btn-primary">生成报价</button>
        </form>
        <br>
        <div id="quoteResult">
          
        </div>
      </div>
    </div>
  </div>
  <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</body>
</html>

通过使用 Bootstrap 框架,我们创建了一个包含输入框和按钮的表单。当我们点击“生成报价”按钮时,表单将被提交,并将报价结果呈现到页面上。

接下来,我们将使用纯 JavaScript 来将这个页面和我们的 API 结合起来,并生成一个完整的报价生成器。

获取数据

用于生成报价的核心数据来自于我们所使用的 API。在这个应用程序中,我们将使用 JSONPlaceholder 这个公共API来获取我们所需的数据,而不是使用真实的产品信息。

JSONPlaceholder 是一个免费的在线API服务,它提供了一些虚构的数据。利用这些数据,我们可以在应用程序中进行测试,而不必担心真实产品数据的合法性和合规性。

我们通过 Ajax 来获取 API 的数据。当用户提交表单时,JavaScript 代码会自动处理表单,并从 API 中获取并显示产品信息。

Markdown代码片段:

$(document).ready(function () {

  // 定义 API 的 URL 和产品代码输入框
  const apiUrl = 'https://jsonplaceholder.typicode.com/posts';
  const productCode = $('#productCode');

  // 当表单提交时,获取数据并呈现报价
  $('#quoteForm').submit(function (event) {
    // 阻止表单自动提交
    event.preventDefault();

    // 获得 API 数据
    $.getJSON(apiUrl, function (data) {
      // 遍历产品列表并找到匹配的产品代码
      $.each(data, function (key, val) {
        if (val.id === productCode.val()) {
          // 显示报价结果
          $('#quoteResult').html('<p>您的报价: $' + productQuantity.val() * val.userId + '</p>');
        }
      });
    });

  });
});

这个 JavaScript 代码片段通过监听 “表单提交” 的事件,向API发送请求,并将结果呈现给用户。当我们提交表单时,JavaScript 获取API数据,并在响应中寻找与用户输入的产品代码相匹配的数据记录。如果找到一个匹配项,则呈现报价。否则,程序输出错误信息。

创建服务器端

我们在前面已经创建了一个简单的报价生成器,但是它只能在通过 file:// 运行的本地环境中使用。如果将它部署到服务器上,则无法使用 jQuery 和 Bootstrap 库。其中一个问题是,浏览器会阻止我们通过文件协议加载库,因为这被认为是一种安全风险,会影响应用程序是否具有威胁性。如果将代码部署到服务器上,就可以调用这些库文件,同时也可以使用 Node.js 和 Express 框架,以便可以创建一个完整的 Web 应用程序。

我们将使用 Express 框架来搭建我们的服务器端。使用 Express 创建应用程序非常容易,它为我们提供了所有我们需要的功能。

Markdown代码片段:

const express = require('express');
const app = express();

// 设置静态文件目录
app.use(express.static('public'));

const server = app.listen(3000, function () {
  let host = server.address().address;
  let port = server.address().port;
  console.log('应用程序已启动并运行在 http://%s:%s', host, port);
});

这个 JavaScript 代码片段将创建一个 Express 应用程序,以及一个监听端口为 3000 的服务器。它还指定了一个名为“public”的静态目录,其中包含我们的 HTML、CSS 和 JavaScript 文件。

所有以上代码将会被保存在一个项目文件夹中。在命令行中,进入项目文件夹目录,然后键入 “node main.js” 命令即可启动服务器,打开浏览器,输入 “http://localhost:3000” 地址,页面将会显示出来,我们的报价生成器应用程序已经准备就绪了。

总结

在本教程中,我们通过使用 API 和纯 JavaScript 创建了一个简单的报价生成器 Web 应用程序。我们用到了 HTML、CSS 和 JavaScript,以及 jQuery 和 Bootstrap 库来构建用户界面。

我们使用了 Ajax 和 JSON 编程技术,让 Web 应用程序可以从一个公共 API 获取数据。同时,我们还使用了 Express 框架,在服务器端运行程序,以便它可以运行在生产环境中。

这个基础的项目可以扩展和改进,以更适合你的特定用例。但是,这个项目可以作为一个很好的起点,以了解如何使用 API 和纯 JavaScript 创建一个完整的 Web 应用程序。