前端学习(二十九)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)) ...
随机推荐
- jsonp跨域获取数据实现百度搜索
本菜鸡最近在写某个页面请求数据时,报了如下的错误. Failed to load https://...:No 'Access-Control-Allow-Origin' header is pres ...
- Adblock Plus 添加过滤规则
过滤掉相关的DIV 如要过滤某网站的 如例1: home.firefoxchina.cn##div#module-game##元素#名字 过滤掉ID为名字的元素##div.名字 class为名字的D ...
- 图与例解读Async/Await
JavaScript ES7的async/await语法让异步promise操作起来更方便.如果你需要从多个数据库或者接口按顺序异步获取数据,你可能最终写出一坨纠缠不清的promise与回调.然而使用 ...
- 【HDOJ6608】Fansblog(威尔逊定理)
题意:给定质数p,求q!模p的值,其中q为小于p的最大质数 1e9<=p<=1e14 思路:根据质数密度近似分布可以暴力找q并检查 找到q后根据威尔逊定理: 把q+1到p-1这一段的逆元移 ...
- 【HDOJ6583】Typewriter(SAM,DP)
题意:给定一个由小写字母组成的字符串,每次可以花费p在串后加上任意一个字母,花费q在串后复制一个当前串的子串,问生成字符串的最小花费 n<=2e5,1<=p,q<2^31 思路: S ...
- vue将页面导出成pdf
npm i jspdf-html2canvas prinOut(){ // 导出pdf let page = document.querySelector('.app-main'); // page ...
- Django中的get()和filter()区别
前言 在django中,我们查询经常用的两个API中,会经常用到get()和filter()两个方法,两者的区别是什么呢? object.get()我们得到的是一个对象,如果在数据库中查不到这个对象或 ...
- docker镜像加速遇见的一个问题
今天运行docker发现了一个问题,运行docker images会报 Cannot connect to the Docker daemon at unix:///var/run/docker.so ...
- zabbix真的很简单 (安装篇)
系统环境: Centos 6.4 一直觉得 zabbix 很简单,但是还是有好多人看了好多文档都搞不明白怎么用,我从2013年使用到现在也小有心得,如果时间允许,很高兴与大家一起分享我在使用过程中的一 ...
- python3反转列表的三种方式
1.内建函数 reversed() li = [1,2,3,4,5,6] a = list(reversed(li)) print(a) 注意:reversed()函数返回的是一个迭代器,而不是一个L ...