基于NodeJS+MongoDB+AngularJS+Bootstrap开发书店案例分析

yizhihongxing

基于NodeJS+MongoDB+AngularJS+Bootstrap开发书店案例分析

书店案例分析的实现,我们将使用Node.js作为编写后端服务器的JavaScript运行时,MongoDB作为数据存储和检索的数据库,AngularJS和Bootstrap框架作为前端实现工具。

步骤一:在个人电脑上安装与配置上述所需软件(以windows系统为例)。

  1. 安装Node.js
    从https://nodejs.org/en/ 下载node.js,根据提示一步步安装。

  2. 安装MongoDB
    从https://www.mongodb.com/download-center下载最新的版本,同样,根据提示一步步安装。

  3. 初始化项目
    启动命令行窗口(Windows系统按 Win-R 键同时按下,输入“cmd”并按 Enter 键即可),然后进入到一个空白的文件夹下,输入 npm init 命令,按照提示输入相应参数。

  4. 安装所需依赖
    在该文件下输入 npm install --save express body-parser mongodb 等依赖模块安装。安装模块非常消耗时间,用户需耐心等候,直到依赖模块都成功安装。

  5. 编写配置文件
    打开 package.json,添加一些自定义命令和依赖,如下:

"scripts": {
    "start": "node server.js",
    "test": "echo \"Error: no test specified\" && exit 1"
},
"dependencies": {
    "body-parser": "^1.17.2",
    "express": "^4.15.3",
    "mongodb": "^2.2.31"
}
  1. 编写服务端代码
    创建 server.js 文件,通过调用依赖的包实现后台逻辑。
var express = require('express');
var bodyParser = require('body-parser');
var mongodb = require('mongodb');

var app = express(); 
app.use(bodyParser()); 

const MongoClient = require('mongodb').MongoClient; 
const url = 'mongodb://localhost:27017/bookstore'; 
MongoClient.connect(url, function (err, db) {
    if (err) throw err;
    console.log("Connected successfully to server");

    app.post('/api/createBook', function (req, res) {
        var obj = {
            "name": req.body["name"],
            "author": req.body["author"],
            "publisher": req.body["publisher"],
            "ISBN": req.body["ISBN"],
            "price": req.body["price"],
            "count": req.body["count"],
        };
        db.collection("books").insertOne(obj, function (err, resp) {
            if(err) throw err;
            res.json({ status: 200, message: "successs" });
        });
    })

    app.get('/api/getAllBooks', function (req, res) {
        db.collection("books").find().toArray(function (err, result) {
            if (err) throw err;
            res.json(result);
        });
    });

    app.listen(3000, function () {
        console.log('Example app listening on port 3000!');
    });
});

然后通过输入 node server.js 启动服务

  1. 编写客户端代码。
    在 index.html 页面中引入Bootstrap以及AngularJS等样式和效果,然后编写相应的JavaScript代码。
<!DOCTYPE html>
<html ng-app="myApp">
<head>
    <title>Bookstore</title>
    <script src="https://cdn.bootcss.com/angular.js/1.6.4/angular.min.js"></script>
    <link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
    <link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" rel="stylesheet">
</head>

<body ng-controller="bookCtrl">
    <div class="container">
        <table class="table table-bordered">
            <thead>
                <tr>
                    <th>图书名</th>
                    <th>作者</th>
                    <th>出版社</th>
                    <th>ISBN</th>
                    <th>价格</th>
                    <th>库存</th>
                    <th>编辑</th>
                </tr>
            </thead>
            <tbody>
                <tr ng-repeat="x in books">
                    <td>{{ x.name }}</td>
                    <td>{{ x.author }}</td>
                    <td>{{ x.publisher }}</td>
                    <td>{{ x.ISBN }}</td>
                    <td>{{ x.price }}</td>
                    <td>{{ x.count }}</td>
                    <td><button ng-click="update(x._id)">编辑</button></td>
                </tr>

            </tbody>
        </table>

        <button ng-click="create()">添加新书</button>
    </div>


    <script>
        var app = angular.module('myApp', []);
        app.controller('bookCtrl', function ($scope, $http) {
            $scope.books = [];

            $http.get("/api/getAllBooks").then(function (response) {
                $scope.books = response.data;
            });

            $scope.create = function () {
                var payload = {
                    "name": "新书籍",
                    "author": "作者",
                    "publisher": "出版社",
                    "ISBN": Math.random().toString(36).replace(/[^a-z]+/g, '').substr(0, 5),
                    "price": parseFloat(Math.random() * 100).toFixed(2),
                    "count": parseInt(Math.random() * 100),
                };

                $http.post("/api/createBook", payload).then(function (response) {
                    $http.get("/api/getAllBooks").then(function (response) {
                        $scope.books = response.data;
                    });
                });
            }

            $scope.update = function (id) {
                alert(id);
            }
        });
    </script>
</body>

</html>

通过浏览器打开该HTML文件,可以看到表格中已经展示出了部分图书信息,并可以通过添加新书功能进行图书添加。

以上所述均为书店案例分析的完整攻略,如果需要更多的样例,请查看实际开发过程中的具体需求。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:基于NodeJS+MongoDB+AngularJS+Bootstrap开发书店案例分析 - Python技术站

(0)
上一篇 2023年5月25日
下一篇 2023年5月25日

相关文章

  • 关于Python网络爬虫requests库的介绍

    下面是对Python网络爬虫requests库的介绍: 一、什么是requests库 requests库是Python中一个常用的HTTP客户端库,可以帮助我们简化HTTP请求过程中的重复代码。requests库可以轻松地与所有类型的Web服务进行交互。 二、requests库的使用 1. 基本的HTTP请求 在requests库中,HTTP请求是通过Req…

    人工智能概览 2023年5月25日
    00
  • 使用tensorflow显示pb模型的所有网络结点方式

    显示pb模型的所有网络节点可以通过TensorFlow提供的工具tf.GraphDef().返回一个TensorFlow计算图的protocol buffer定义。可以通过以下步骤在Python API中使用tf.GraphDef(): 1.导入TensorFlow模块 import tensorflow as tf 2.定义待加载的pb模型文件路径。其中w…

    人工智能概论 2023年5月24日
    00
  • PyTorch中的神经网络 Mnist 分类任务

    PyTorch是深度学习领域最受欢迎的框架之一,它不仅易于使用,而且还灵活高效。本文将详细讲解如何在PyTorch中实现MNIST分类任务,让您更加深入地了解PyTorch的使用。 准备工作 在实现MNIST分类任务之前,我们需要以下库: PyTorch 用于构建神经网络模型 torchvision 用于获取MNIST数据集 matplotlib 用于可视化…

    人工智能概论 2023年5月25日
    00
  • 深入理解Python分布式爬虫原理

    深入理解Python分布式爬虫原理 在分布式爬虫中,一个爬虫任务被分成多个子任务,分发给多个节点执行,最终合并结果。Python分布式爬虫框架Scrapy已经内置了分布式爬虫功能,但是对于特定的需求,我们可能需要自己实现分布式爬虫。 分布式爬虫的原理 分布式爬虫的实现主要依赖于队列和节点间的通信。 节点1从队列中获取爬虫任务,爬取数据后将结果存储到队列中。节…

    人工智能概论 2023年5月25日
    00
  • 浅谈swoole的作用与原理

    浅谈 Swoole 的作用与原理 Swoole 是一款基于 PHP 的协程网络通信引擎,其主要作用是提供异步、高并发的网络通信能力。本文将介绍 Swoole 的作用和原理,并提供两个示例说明。 Swoole 的作用 Swoole 主要用于处理服务器端的网络通信,包括但不限于以下几个方面: 提供异步事件驱动的编程模型,相较于传统的编程模型,更加高效,性能更好;…

    人工智能概览 2023年5月25日
    00
  • 如何使用C#扫描并读取图片中的文字

    下面我会为您详细讲解如何使用C#扫描并读取图片中的文字。 方案概述 使用C#扫描并读取图片中的文字,我们需要以下几个步骤: 安装并引用OCR识别API,例如百度云OCR API或阿里云OCR API等; 载入图片文件到内存中; 调用OCR识别API将图片中的文字识别出来; 对识别结果进行处理,例如从识别结果中提取出特定信息,或者将识别结果输出到文本文件中等。…

    人工智能概论 2023年5月25日
    00
  • Qt生成随机数的方法

    生成随机数是很多计算机程序都需要的功能之一。在 Qt 中,我们可以通过以下几种方式来生成随机数: 1. 使用 Qt 提供的 QRandomGenerator 类 QRandomGenerator 类可以生成质量较高的随机数序列。它在 Qt 5.10 中引入,在 Qt 6 中成为标准类。我们可以通过 QRandomGenerator::global() 来获取…

    人工智能概览 2023年5月25日
    00
  • Python调用C++,通过Pybind11制作Python接口

    Python调用C++,可以通过Pybind11制作Python接口。下面我们将为大家详细讲解如何制作Python接口,包括具体步骤及两个示例说明。 步骤 1、安装Pybind11 Pybind11是Python调用C++的一个模块,需要先安装。可以通过pip安装,命令如下: pip install pybind11 2、定义函数 首先,需要在C++中实现想…

    人工智能概览 2023年5月25日
    00
合作推广
合作推广
分享本页
返回顶部