一、在学习node之前,我们先来了解一下后台的语言,我们都知道后台语言包括PHP,JAVA,.NET,我们来一个一个看一下
PHP:现在最常见的后台语言,大概占70%,他的优点是小巧,方便,适合中小企业系统,门户网站。
JAVA:约占30%,属于比较庞大,功能和架构复杂,安全性高,主要用于大型系统的开发,比如银行类系统,淘宝,京东.....
.NET:用户数基本等于微软的员工数,咱们在这里就不详细介绍了。
二、了解完这些后台语言之后,我们来介绍一下NodeJS,
NodeJs:后台语言,用js编写,基于chrome内核。
三、那我们为什么要学习NodeJS呢?
我小小的总结了一下,分别与下面三点:
1.对于前端来说,为以后的全栈开发打好基础;
2.可以更详细的了解交互过程中相关的前台、后台一个完整的流程;
3.至少可以多赚几千块钱(比较实在哈)。
最后一个是不是很诱人,哈哈
四、那我们再来看一下NodeJs的优势:
1.开发效率高;
2.学习成本低,百分之八十都是Node的东西;
3.与JS无缝对接。
五、那NodeJs的缺陷是什么呢?
1.语言比较年轻,成熟的框架比较少;
2.对程序猿的要求高。
六、NodeJs的环境:
命令窗口、终端:win:开始-运行(win+R)-cmd-回车
七、官网:https://nodejs.org/en/ 安装Node
八、nodejs程序,是后台程序,和网页,和浏览器没有直接关系。
九、第一个node程序:
1)显示一个变量的值
let a=12;
console.log(a);
运行一个nodejs程序:
1)打开命令窗口;
2)切换到程序的文件夹 d:\node
终端命令------
windows:dos命令
mac:linux命令
切换盘符:
从c盘切换到d盘 : d:------回车
切换文件夹(目录):cd
比如要切换到 node文件夹下 ---d:\node
D:\ > cd node ----回车 d:\node>
cd .. 上一级
cd \ 返回根目录
显示当前位置的内容:dir
清屏:cls
快捷方式,(偷懒的办法):
1)
2)windows窗口,shift+右键 -----》在此处打开命令窗口
3)node 1.js
利用node命令,把1.js这个程序运行起来
十、用node写接口
首先我们必须要解决的问题:
1、必须是可以被访问到的;
2、接口必须有数据返回;
3、要从数据库中取数据,返回
第一个问题:
服务器的问题:
以前:WAMP-Apache ---服务器环境
现在:用Node自己实现
1)完全自己写
2)使用现有的框架
步骤:
1、安装模块:expr
ess
npm----bower----cnpm
npm:node自带的包管理工具,服务器在国外,所以我们通常使用cnpm
cnpm:https://npm.taobao.org/
安装:npm install -g cnpm --registry=https://registry.npm.taobao.org
安装express:d:\node> cnpm install express
其他方式:cnpm install express --save
--save:会产生package.json文件—— 项目的配置文件,记录了所依赖的模块的信息,如果有了配置文件package.json,在新位置安装的时候: cnpm i
十一、写一个服务器:
1.引入模块 express
const express = require('express');
2.启动express
let server=express();
server:运行express,得到的服务器对象
--此时来运行程序,执行完就完事了,服务器并没有一直在等待,而我们需要的是服务器一直在等待状态,等待用户的访问
3.监听端口
端口:和门牌号一样。
范围:1-65535
server.listen(666);
4.处理用户请求:
用户请求:get post
node中处理请求:
server.get----处理get请求
server.post----处理post请求
server.use ----不区分get,post,都可以处理 use-----除了处理请求,还有其他的功能
get:
server.get('请求的路径',回调函数:参数1---request,---请求 参数2---response---响应);
server.get('/',(req,res)=>{
res.send('aaaaa');//给用户发送数据
res.end();//结束此次请求
})
十二、实现一个真实的接口:获取用户信息
访问地址:/getUsers
返回值:
成功:
{err:0,data:[
{username:'aaaa',password :'1234'},{}
]}
失败:
{err:1,msg:'网断了,取不到数据'}
十三、现在实现的服务器,可以返回接口形式的数据,但是不能提供对 .html 等文件的访问。
——不能访问静态文件
解决:
借助于一个新的模块,express模块本身不能提供对静态文件的访问。
新模块:
express-static
另外一种叫法: 中间件
1)下载安装
cnpm i express-static --save
2)引入
const static = require('express-static');
3)使用
server.use(static('可以访问的静态文件的文件夹'));
server.use(static('www'));
十四、数据库
1)常见的数据库: mysql oracle sqlserver
mysql:小巧,免费,应用于中小级系统
oracle:庞大,收费,应用于大型系统,功能全,安全性高
sqlserver:大中型
下面我们主要来说一下mysql:
客户端工具:phpMyAdmin
数据库相关概念:库-> 表-> 结构-> 数据
2)数据库和excel非常像:
excel 数据库
工作簿 库(数据库)
工作表 表
列:标题 字段
行:一条数据 行
3)
1、连接到数据库服务器。
信息项:
连接名: 随便起个名
主机或IP:localhost --表示要连接到哪台机器
端口:3306
用户名: root --登录这台数据库服务器的用户名
密码: 空
2、创建数据库
1)双击数据库连接
--显示出已经有的数据库
2)右击数据库连接——新建数据库
起名字:ttx
字符集:utf8
排序规则:utf8_general_ci
3)双击打开数据库
3、修改表结构
表名上右键 —— 设计表
4、用程序操作数据库
数据库的操作:增 删 改 查
语句:数据库有自己的语句,有自己的语言—— SQL
增:
insert into 表名(字段名1,字段名2) values(值1,值2);
insert into 表名 values(值1,值2);
删:
delete from 表名
delete from 表名 where 条件
delete form userinfo where id=10;
改:
update 表名 set 字段名=值 where 字段名= 值
查:
select 字段1,字段2.. from 表名
select * from 表名
select * from 表名 where 条件
十五、在NodeJs中操作数据库,编写真实的接口。
1、需要一个新的模块的支持 mysql
cnpm i mysql
2、创建数据库连接
let db = mysql.createConnection({
host:'localhost', //主机,哪台机器
user:'root', //用户名
password:'', //密码
database:'ttx' //数据库,要连接的数据名
});
3、执行SQL语句
db.query('SQL语句',(错误信息,数据)=>{
});
------
例:
db.query('select * from users',(err,data)=>{
//使用data,data就是查询数据库得到的数据
});
十六、在接口中,取出传入的数据:request.query
server.get(url,(req,res)=>{
req.query //get方式下取得用户提交的数据
});
十七、POST请求以及接口处理:
在Node中,处理post请求,需要引入一个模块: body-parser
post请求: 请求头(header) 请求实体(body) 请求尾
body-parser 模块,使用时,需要 server.use(body.urlencoded());// 开启中间件 , 以前 server.use(static('www'));
今天暂时就写到这里了,有问题可以在下面留言评论,欢迎大家广泛提建议。