前端学习(二十九)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语句中判断是否相等用 =
========================================================
前端学习(二十九)nodejs(笔记)的更多相关文章
- 前端学习(三十九)移动端app(笔记)
		移动端App 开发App的三种方式 Native App 原生 底层语言 java Android oc ... 
- 前端学习(二十八)es6&ajax(笔记)
		ES6 let 块级作用域 const 解构赋值 字符串拼接 扩展运算符 ------------------------------------------ ... 
- 前端学习(二十六)移动端s(笔记)
		===================================================弹性布局rem布局---------------------------------------- ... 
- 前端学习(二十二)css3(笔记)
		html5 普通: header section footer nav article aside figure 特殊: canvas video audio ... 
- 前端学习(二十)jquery属性(笔记)
		jq里面操作属性的方法: 设置属性: 设置一个: $(this).attr('src','img/pic2.jpg'); 设置一组: ... 
- ElasticSearch7.3学习(二十九)----聚合实战之使用Java api实现电视案例
		一.数据准备 创建索引及映射 建立价格.颜色.品牌.售卖日期字段 PUT /tvs PUT /tvs/_mapping { "properties": { "price& ... 
- Java开发学习(二十九)----Maven依赖传递、可选依赖、排除依赖解析
		现在的项目一般是拆分成一个个独立的模块,当在其他项目中想要使用独立出来的这些模块,只需要在其pom.xml使用<dependency>标签来进行jar包的引入即可. <depende ... 
- ballerina 学习二十九 数据库操作
		ballerina 数据操作也是比较方便的,官方也我们提供了数据操作的抽象,但是我们还是依赖数据库驱动的. 数据库驱动还是jdbc模式的 项目准备 项目结构 ├── mysql_demo │ ├── ... 
- python学习 (二十九) range函数
		1:list函数可以将其他类型转成list. print(list(range(0, 10))) 2: list函数把元组转成list t = (1, 3, 3, 5) print(list(t)) ... 
随机推荐
- center os7 安装mysql
			安装mariadb MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可.开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险, ... 
- MyCat(1.2)Mycat的安装
			[0]基本环境 OS:CentOS7.5 Software envireonment:JDK1.7.0 Master Software:Mycat1.6.5 Linux Client:CRT 8.0 ... 
- 洛咕P4180 严格次小生成树
			鸽了很久的一道题(?)貌似是去年NOIP前听的emm... 首先我们分析一下最小生成树的性质 我们kruskal建树的时候呢是从小到大贪心加的边,这个的证明用到拟阵.(我太菜了不会) 首先我们不存在连 ... 
- Python 无法安装PyAudio问题
			一.错误与原因 在Windows上没有用于Python 3.7的轮子(预构建包)(有一个用于Python 2.7和3.4到3.6),因此需要在PC上准备构建环境以使用此包.因为有些软件包很难在Wind ... 
- 内存中的Buffer和Cache的区别
			Reference:https://time.geekbang.org/column/article/74633 磁盘是一个块设备,可以划分为不同的分区:在分区之上再创建文件系统,挂载到某个目录,之后 ... 
- 【leetcode】981. Time Based Key-Value Store
			题目如下: Create a timebased key-value store class TimeMap, that supports two operations. 1. set(string ... 
- navicat12过期问题,Windows平台。
			首先关闭Navicat 然后 win+R,输入regedit 回车,打开注册表编辑器: 删除HKEY_CURRENT_USER\Software\PremiumSoft\Data 展开HKEY_CUR ... 
- 图与例解读Async/Await
			JavaScript ES7的async/await语法让异步promise操作起来更方便.如果你需要从多个数据库或者接口按顺序异步获取数据,你可能最终写出一坨纠缠不清的promise与回调.然而使用 ... 
- 【MySQL】实现自增函数sequence
			前言 当前数据库为:mysql由于mysql和oracle不太一样,不支持直接的sequence,所以需要创建一张table来模拟sequence的功能,理由sql语句如下: 步骤 1.创建seque ... 
- php简易分词
			http://www.xunsearch.com/ 示例 http://www.xunsearch.com/scws/demo/v48.php 
