后台语言
    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语句中判断是否相等用 =
========================================================

前端学习(二十九)nodejs(笔记)的更多相关文章

  1. 前端学习(三十九)移动端app(笔记)

    移动端App    开发App的三种方式    Native App         原生        底层语言        java         Android        oc      ...

  2. 前端学习(二十八)es6&ajax(笔记)

    ES6    let    块级作用域    const    解构赋值    字符串拼接    扩展运算符    ------------------------------------------ ...

  3. 前端学习(二十六)移动端s(笔记)

    ===================================================弹性布局rem布局---------------------------------------- ...

  4. 前端学习(二十二)css3(笔记)

    html5        普通:        header section footer nav article aside figure 特殊:        canvas video audio ...

  5. 前端学习(二十)jquery属性(笔记)

    jq里面操作属性的方法: 设置属性:            设置一个:            $(this).attr('src','img/pic2.jpg');            设置一组:  ...

  6. ElasticSearch7.3学习(二十九)----聚合实战之使用Java api实现电视案例

    一.数据准备 创建索引及映射 建立价格.颜色.品牌.售卖日期字段 PUT /tvs PUT /tvs/_mapping { "properties": { "price& ...

  7. Java开发学习(二十九)----Maven依赖传递、可选依赖、排除依赖解析

    现在的项目一般是拆分成一个个独立的模块,当在其他项目中想要使用独立出来的这些模块,只需要在其pom.xml使用<dependency>标签来进行jar包的引入即可. <depende ...

  8. ballerina 学习二十九 数据库操作

    ballerina 数据操作也是比较方便的,官方也我们提供了数据操作的抽象,但是我们还是依赖数据库驱动的. 数据库驱动还是jdbc模式的 项目准备 项目结构 ├── mysql_demo │ ├── ...

  9. python学习 (二十九) range函数

    1:list函数可以将其他类型转成list. print(list(range(0, 10))) 2: list函数把元组转成list t = (1, 3, 3, 5) print(list(t)) ...

随机推荐

  1. springboot dubbo logback shutdownhook简单总结

      public class Test { public static void main(String[] args){ System.out.println("1: Main start ...

  2. 5G如何让智能手机再次变得丑陋?

    第一批5G移动终端将于明年到货,这意味着智能手机制造商现在正在研究细节.与过去十年智能手机所看到的很多其他组件改进不同,像更好的相机,更快的处理器和更亮的屏幕,5G无线电将需要一些设计上的妥协,而且看 ...

  3. PowerDesigner 小技巧

    PowerDesigner 重现快捷工具栏 palette :Tools -->customsize toolbars-->palette(调色板)勾选 如何在PDM中列表显示TABLE的 ...

  4. 423 Locked

    TortoiseSVN提交提示423 Locked的解决办法 . 此办法是阅读官方文档(TortoiseSVN-1.6.16-zh_CN.pdf) 4.21 锁部分提供的办法: 首先选择选择要提交的文 ...

  5. VS2005下使用GSL-1.15小结

    最近在复习高等数学,有时为了验证顺便复习下C语言,看了看自己下载收集的软件,发现C语言有一个数学工具包,是GNU开发的,叫做GSL--GNU Scientific Library,中文:C++科学计算 ...

  6. Halo(九)

    跨域问题 域名A(http://www.a.com)的 Web 应用程序中, 通过标签引入了域名B(http://ww.b.com)站点的某图片资源(http://www.b.com/image.jp ...

  7. 每天一个linux命令:more(13)

    more more命令是一个基于vi编辑器文本过滤器,它以全屏幕的方式按页显示文本文件的内容,支持vi中的关键字定位操作.more名单中内置了若干快捷键,常用的有H(获得帮助信息),Enter(向下翻 ...

  8. struts2---访问WEB

    一:在Action中,可以通过以下方式访问WEB的HttpSession,HttpServletRequest,HttpServletResponse等资源 与Servlet API解耦的访问方式 通 ...

  9. BDE(一款数据库引擎,通过它可以连接不同数据库)

    BDE(Borland Database Engine)是Inprise公司的数据库引擎,它结合了SQL Links允许程序员通过它能够连接到各种不同的数据库.BDE是BORLAND 数据库引擎的缩写 ...

  10. 一双木棋(chess)

    一双木棋(chess) 题目描述 菲菲和牛牛在一块 nn 行 mm 列的棋盘上下棋,菲菲执黑棋先手,牛牛执白棋后手. 棋局开始时,棋盘上没有任何棋子,两人轮流在格子上落子,直到填满棋盘时结束.落子的规 ...