NodeJS基本知识总结

NodeJS基本知识总结


express框架的基本介绍


express框架

产生的原因:
    1.http模块在处理路由这块比较鸡肋
    2.http模块在处理静态资源时比较麻烦
    3.http在获取浏览器的提交过来的参数时很麻烦
    4.express能解决url中有中文时,express能自动解码

基本概念:
express是nodejs发送网络请求的第三方框架,是NodeJS中一个优秀的 web 解决方案

地址:
https://www.npmjs.com/package/express
https://github.com/expressjs/express

安装:
    npm i/install express --save

express使用步骤

利用express开启web服务器的步骤:
1、在当前项目中使用 npm i/install express --save
2、导入express包
3、利用express对象创建一个application对象 app
4、在app对象上就有一系列方法(get,post)还可以可以分别设置请求路由
5、利用app.listen()监听端口

GET方法获取参数:
    直接从 req.query中就可以获取,非常简单

POST方法获取参数:
    使用一个第三方包 body-parser

express的路由

/man/xz
/man/ld

/woman/qz
/woman/sw

如何使用:
    1.将某一类路由规则放入到一个js文件中,写好相应的代码,并且暴露出去
        const express = require('express');

        let route = express.Router(); //创建一个路由
        路由的处理...

        module.exports = route; //将创建的路由对象暴露出去

    2.在启动服务器的js文件中,导入对应的路由,并且调用app.use方法使用即可
        const route = require('路由的路径');

        app.use('路由规则',route); //哪些路由规则适用于该路由


开发注意事项:
    设置路由一定要写在入口文件的代码后面一些,最好写在app.listen(xx) 的前一行即可;

express之next方法

使用方式:(有两种)

    第一种:连写方式,用得比较少
        app.get('/',(req,res,next)=>{
            res.write('1.0 ');
            next();
        },(req,res,next)=>{
            res.write('2.0 ');
            next();
        },(req,res)=>{
            res.end('3.0 end');
        });

    第二种:分开写,用得比较多
        app.get('/',(req,res,next)=>{

            res.write('1.0');

            //触发下一个同样的路由的回调函数
            next('route');
        });

        app.get('/',(req,res)=>{

            res.end('2.0');
        });

调用的过程分析:
    当浏览器请求 http://127.0.0.1:8888/
    触发第一个回调函数,当在第一个回调函数中手工执行next()的时候
    就会触发第二个回调函数,一直下去直到最后一个回调函数被执行,那么最后
    这个回调函数可以不用写next参数

使用注意:
    触发下一个同样的路由的回调函数,路由必须一致

express之通配符方法(all)与next方法联合起来做权限验证

使用方式:
    app.all('路由',(req,res,next)=>{

        if(登录过){
            next();  //继续往下执行真正的请求
        }else{
            res.end("请登录"); //提示用户登录
        }
    });

注意点:

app.all(xxx); 一定要在所有路由的最前面

express静态资源处理

使用方式:
    app.use(express.static('静态资源路径')); 

访问时的注意点:
    如果浏览器要访问statics下面的site.css
    url应该是 http://127.0.0.1:8888/site.css 
    如果是http://127.0.0.1:8888/statics/site.css 反而报错
    如果是statics下面的字母中的静态资源,则一定要在url中加上子目录

注意点:
    设置在路由或是app.use(路由),之前
    要在两个地方写,一个是html里面,还有一个地方是入口的js文件

MongoDB安装及基本配置

数据库概念

数据库:数据存储的仓库

数据库就是为我们方便的管理数据的一个平台,例如对数据的存储、修改、查询等都非常的方便。

数据库分类

数据库产品有很多,以下是一些常见的数据库产品:

  • MySQL
  • Oracle
  • DB2
  • SqlServer
  • MongoDB
  • etc.

数据库没有排名之分,各有各的应用场景,我们这里学习的是 MongoDB 数据库。

MongoDB 数据库

为了更好的学习 MongoDB 数据库,大家可以参考菜鸟教程上的 MongoDB 数据库教程文档,
链接地址:http://www.runoob.com/mongodb/mongodb-tutorial.html

mongodb数据库官网:https://www.mongodb.com/

下载地址:https://www.mongodb.com/download-center?jmp=nav
选择好对应的版本下载即可

为什么选择MongoDB?

理由:

    1.只要会js就会mongodb(学习成本低)
    2.mongodb对js的兼容性最好
    3.mongodb存数据就是存JSON

安装与配置 MongoDB 数据库环境

详情见视频:

怎么验证安装成功:
    在cmd终端中输入: mongo --version 或是 mongod --version ,能看到版本好,说明安装成功

如果终端中输入 mongo --version 提示找不到命令,一定要看看是不是没有配置mongodb的环境变量,并且配置环境变量之后一定要记得重启cmd

window7安装MongoDB存在的问题

建议:升级到window10

解决步骤:
    1.将你的操作系统升级到window7最新版
    2.安装 vc_redist.x64.exe 
    3.如果你的电脑是32位的,再安装32位的mongodb软件 mongodb-win32-i386-3.2.11-signed.msi

MongoDB 数据库存储结构

和Excel对比一下即可明白:


核心思想:
    1.分门别类的存储数据
    2.mongodb是以`集合`的概念来区分不同数据的,比如用户集合,商品集合,订单集合等等,不同的数据要放在不同的集合中去统一管理
    3.集合里面存储的可以认为是一个数组
    4.数组中的每一个对象,可以认为就是JSON对象,在mongodb中我们称之为 `文档`
    5.文档的结构可以随意,但是必须统一,也就是说,同一个集合中,所有的文档一定要遵守相同的数据结构

其他:
    `集合`的作用就是用来隔离数据,分门别类的存储数据

操作MongoDB的步骤

1.创建数据库中数据的存储目录
2.启动MongoDB的服务实例
3.创建数据库
4.创建集合
5.创建文档

MongoDB使用之前必做步骤1--创建数据目录(必须)

我们在安装完成MongoDB后需要创建一个存放数据的目录。请注意,数据目录应该放在根目录下((如: C:\ 或者 D:\ 等 ),数据目录的命名随意,比如我就命名 mongodb_datas

MongoDB使用之前必做步骤2--启动服务器(必须)

启动MongoDB服务器的方式一:通过终端指令去启动

    1.首先在终端切换到你的MongoDB的安装目录的bin目录下(当然如果配置了环境变量在哪个目录下都可以了)

    2.在终端执行: mongod.exe --dbpath c:\mongodb_datas ,如果成功启动就表示一切都OK了

    注意点:
        1.32 位版本使用下面的命令启动数据服务:
        ```
        mongod --dbpath 数据存储路径 --journal --storageEngine=mmapv1
        ```

        2.执行完上面的命令并成功开启 MongoDB 数据服务实例之后,就把该控制台最小化到一边就可以了,
        千万不要关闭,否则无法连接,如果对数据库的操作结束,可以打开该控制台通过 `Ctrl + C` 关闭。

启动MongoDB服务器的方式二:方式一的延续,把上面的指令做成一个批处理文件.bat


启动MongoDB服务器的方式三:将MongoDB服务器作为Windows服务运行

    请注意,你必须有管理权限才能运行下面的命令。执行以下命令将MongoDB服务器作为Windows服务运行:

    mongod.exe --bind_ip yourIPadress --logpath "C:\data\dbConf\mongodb.log" --logappend --dbpath "C:\data\db" --port yourPortNumber --serviceName "YourServiceName" --serviceDisplayName "YourServiceName" --install

    例子:
        mongod.exe --bind_ip 127.0.0.1 --logpath "C:\mongodb_datas\server_log\mongodb.log" --logappend --dbpath "c:\mongodb_datas" --port 27017 --serviceName "MongoDBServer" --serviceDisplayName "MongoDBServerDisplayName" --install


    补充:从Windows服务中卸载 MongoDB服务
        1.先停止要删除的服务(比如MongoDBServer)
        2.以管理员身份运行cmd,在cmd中输入: sc delete 服务名称(比如MongoDBServer)

    注意点:
        1.mongodb.log 这个日志文件一定要先创建好,才能执行指令
        2.必须要以管理员的身份打开cmd窗口,并运行

如何连接到MongoDB服务器并且操作它?

注意:在进行连接之前请确保你的服务实例是开启状态的(不要关闭刚才开启的数据服务实例)。

可以使用两种方式来连接到MongoDB服务器并且操作它

连接方式1:使用MongoDB自带的MongoDB后台管理 Shell
    在终端中输入 mongo 或是 mongo --host 127.0.0.1 --port 27017

    mongo 命令默认去连接本机上的 MongoDB 服务实例:`127.0.0.1:27017`,可以通过下面的命令
    指定连接的主机名和端口号:
    ```
    mongo --host 127.0.0.1 --port 27017
    ```

    如果看到类似于如下的字样说明连接成功:
    ```
    MongoDB shell version v3.4.2
    connecting to: mongodb://127.0.0.1:27017
    MongoDB server version: 3.4.2
    Server has startup warnings:
    2017-01-18T18:49:53.865+0800 I CONTROL  [initandlisten]
    2017-01-18T18:49:53.865+0800 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
    2017-01-18T18:49:53.866+0800 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
    2017-01-18T18:49:53.866+0800 I CONTROL  [initandlisten]
    >
    ```
    如果提示 “无法连接主机”,请检查你的 MongoDB 数据服务实例是否开启。

操作方式1:在终端中使用mongodb的指令进行操作

        常见指令:
            见下一个知识点


连接及操作方式2:使用图形化客户端工具:
    robomongo(跨平台) : https://robomongo.org/download

基本操作命令

可以参考:
    http://www.yiibai.com/mongodb/mongodb_create_collection.html

    http://www.runoob.com/mongodb/mongodb-tutorial.html
  • show dbs
    • 查看当前服务实例上所有的数据库
  • use 数据库名称
    • 如果数据库不存在,则创建数据库,否则切换到指定数据库。
  • db
    • 查看当前所处的数据库
  • show collections
    • 查看当前数据库中所有的集合
  • db.createCollection("集合名称")
    • 创建集合
  • db.集合名称.insert({数据文档})
    • 插入的每一条文档会自动帮我们生成一个_id字段,它是mongodb自动维护的,不需要我们关心
  • db.集合名称.find()
    • 查询指定集合中所有的数据
    • 可以通过 db.集合名称.find().pretty() 美化输出格式
    • 默认是查询所有,可以通过:db.集合名称.find({查询条件}) 按条件查询集合中的数据
  • db.集合名称.update({更新条件}, {要更新的字段})
    • 更新指定集合数据,注意点,要更新的字段一定要这样写 {$set:{字段的名称:字段的值}},
  • db.集合名称.remove({删除条件})
    • 删除指定集合中的数据
  • exit 退出当前操作
  • cls 清屏

    注意点:更新和删除时一般都需要带条件,除非是全部更新与全部删除,不过全部更新与全部删除这样很危险,实际操作过程中很少

使用 Node 操作 MongoDB

安装 MongoDB 官方提供的驱动包:

npm install --save mongodb

具体操作方式请参考官方文档:https://www.npmjs.com/package/mongodb

你可能感兴趣的:(NoodJs)