前端学习(二十九)nodejs(笔记)

后台语言
    java     php     .Net     python
    Node.js
-----------------------------------------------------
Node.js
    1.语法就是js语法
    2.性能高             理论上是php的86倍
        Node.js             php
        3                    200
        6                     400
    3.公司用的特别多
------------------------------------------------------
Node.js
    node --version     

    node.js文件
        *.js

    执行node文件
        node 文件名

        nodejs中不能操作BOM和DOM
-------------------------------------------------------
自己搭建服务
    nodejs的作者帮我们封装了http

    let http = require('http');
    let fs = require('fs');
    let server = http.createServer((req,res)=>{
        console.log('It`s coming');
        res.write(内容);
        res.end();
    });
    问题:服务启动之后马上关闭
    需要监听端口
        server.listen(端口号);

    192.168.1.113
        Web服务
        邮件服务
        文件传输服务

        区分多个服务
            端口号

        常见端口号
            80             web服务
            3306         数据库服务
            21/22         文件传输服务
            110         邮箱

    let http = require('http');
    let fs = require('fs');

    http.createServer((request,response)=>{
        fs.readFile('www'+request.url,(err,data)=>{
            if(err){
                response.end('404');
            }else{
                response.end(data);
            }
        });
    }).listen(8081);

=============================================
请求服务器:
    1.获取资源
    2.数据交互
=================================================
=========================================
let http = require('http');
let fs = require('fs');

let server = http.createServer((request,response)=>{
    request             请求
    response             响应
});
server.listen(端口号);
============================================================
express
    npm install express --save
    npm install express-static --save

    --save-dev
    --save


    let express = require('express');
    let static = require('express-static');

    let server = express();
    server.listen(8081);

    //文件路由
    server.use(static('根目录/'));


    //get接口
    server.get('/接口名',(request,response)=>{

        //response.write()/end()
        response.send();
    });

=============================================================
DataBase             数据库
    mysql sqlserver oracle db2000 access.....
==============================================================
mysql             
    1.轻量
    2.免费
==============================================================
1.安装
    集成环境
2.操作mysql
    命令行操作
    图形界面
        Navicat For Mysql

        Wamp自带     PhpMyAdmin
============================================================
    库    Base
        不是存数据的,是管理表的
    表     Table
        存数据的

        列(字段)         某一项数据
        行                 某一条数据
------------------------------------------------------------
    数据库也有类型
        INT         整型             整数
        FLOAT         单精度浮点数     一位小数     12.5
        DOUBLE         双精度浮点数     多为小数     12.35     12.335
        CHAR         字符             一个文字     'a'
        VARCHAR     字符串             一串文字     "abc"
        TEXT         大字符串         一大串文字

后台操作数据库
    nodejs本身不能操作数据库
    安装node模块才可以:
        mysql模块

    npm install mysql --save

    引入模块
        let mysql = require('mysql');
    连接数据库
        let db = mysql.createConnection({
            host:'数据库地址',
            user:'用户名',
            password:'密码',
            database:'数据库名'
        });

    

    执行SQL语句
        db.query(SQL语句,(err,data)=>{
            跟fs的readFile一样
        });

===========================================================
后台的字符串用双引号
前端的字符串用单引号

用户登录
    http://localhost:8081/login?username=xxx&password=xxx
        return     
                {"error":0/1,"message":""}

    根据用户名在数据库中查询数据
        查到
            判断密码是否相等
                相等
                    登录成功
                不相等
                    用户名或密码错误
        没查到
            用户未注册

用户注册
    http://localhost:8081/register?username=xxx&password=xxx
        return     
                {"error":0/1,"message":""}

    根据用户名在数据库查询
        查到
            用户名已被占用
        没查到
            直接注册并且返回注册成功


=========================================================
nodejs 的express框架 post交互用:
        body-parser模块


    let express = require('express');
    let static = require('express-static');
    let bodyParser = require('body-parser');

    let server = express();
    server.listen(8081);

    server.use(static('www/'));
    server.use(bodyParser.urlencoded({ extended: false }));

    server.get('接口名字',(request,reponse)=>{
        request.query     里面放着数据
    })

    server.pose('接口名字',(request,response)=>{
        request.body      里面放着数据
    });

=========================================================
SQL
    数据操作
        增删改查

        SQL语句————数据库的语言

        两种人玩:DBA、后台


        查询语句
            SELECT * FROM 表名;

            SELECT * FROM tab_user;

            SELECT * FROM 表名 WHERE xxxxx;

            SELECT * FROM tab_user WHERE username='eric';

            LIMIT      限制
            SELECT * FROM 表名 LIMIT 从哪个索引开始,拿几条

            SELECT * FROM tab_newsong WHERE type=1 LIMIT 0,6
            SELECT * FROM tab_newsong WHERE type=1 LIMIT 6,6
            SELECT * FROM tab_newsong WHERE type=1 LIMIT 12,6

            求出一共有多少条
            SELECT COUNT(*) AS len FROM tab_newsong


        插入语句
            INSERT INTO 表名 (字段,字段) VALUES (值,值);

            INSERT INTO tab_user (username,password) VALUES ('lisi','123');


        *注意:SQL语句中判断是否相等用 =
========================================================

猜你喜欢

转载自www.cnblogs.com/wxiaoyu/p/9579404.html