js-20网络编程
01.后端编程【nodejs?】
1.后端编程 =》应用程序 网站
三个部分 三个电脑 前端 负责页面展示,简单的交互效果 后端 接收请求 处理业务逻辑 响应数据 数据库 存储数据的仓库 运行过程: 1.前端请求商品列表数据 2.向后端发起一个商品列表请求 3.后端接受到请求之后,从数据库获取商品列表数据 4.响应给前端 5.前端根据后端相应渲染页面 后端编程语言:java | php | python | go | javascript语言 后端运行环境: 前端>浏览器chrome v8引擎,解析执行javascript代码 后端>node.js 执行js代码: 命令行窗口 >node xx.js 启动小贴士: window+r => 搜索cmd =>node -v(检查是否安装成功) vscode =>js文件--集成终端打开--注意下方右上角是cmd (下拉框--选择默认配置文件--cmd ) (文件名可以tab快捷)
02.命令行操作
在node js环境中不能写dom和bom操作的代码 cd 目录名 跳转指定文件 cd.. 后退文件
03.web服务器
1.安装了提供web服务软件的电脑称之为web服务器 2.常见的web服务器软件有哪些? nginx apache tomache vscode插件liverServer 后期开发需用 3.nginx如何使用
补充
端口不要写太小,会有占用 集成终端运行 - 出现address already in use 按住ctrl+c停止运行重新启动 找自己ip地址: - window+r => 输入cmd =>输入ipconfig 本机 127.0.0.1 chrome插件如何安装: - 谷歌浏览器 => 三个点 - 更多工具 - 扩展程序 - 开发者 - 加载 - 选插件
练习.编写后端web程序【掌握】
//1.使用nodejs提供的内置的http模块,模块创建web服务相关的属性方法 const http = require('http') //引入node.js内置的http模块,赋值给http变量 //2.创建web服务对象 let server = http.createServer(function (request, response) { //request 请求对象,前端请求信息包含在此对象中 //response 相应对象,后端相应给前端的信息包含在此对象中 let url = request.url console.log('url', url); //要求: 当用户在浏览器输入 http://ip:port:3000/productlist 时, //避免乱码,设置字符集 response.writeHead(200, { 'content-type': 'text/html;charset=utf-8' }) if (url.indexOf('productlist') !== -1) { let productList = [{ id: 1001, //商品序号 name: 'js高级编程', //商品名 url: 'https://img1.baidu.com/it/u=454394458,1998378568&fm=253&fmt=auto&app=138&f=JPEG', //商品图片 price: 68.90, //商品价格 num: 0, //商品数量 singlePrice: 0, //商品总价=数量*价格 state: false //状态 }, { id: 1002, name: 'css高级编程', url: 'https://img1.baidu.com/it/u=337910016,91561566&fm=26&fmt=auto', price: 55.89, num: 0, singlePrice: 0, state: false //状态 }, { id: 1003, name: 'html高级编程', url: 'https://img1.baidu.com/it/u=337910016,91561566&fm=26&fmt=auto', price: 45.89, num: 0, singlePrice: 0, state: false //状态 } ] //不能传入对象,要转成字符串 对象不能再网络中运输 var productListStr = JSON.stringify(productList) response.write(productListStr) } else { response.write('你好哇,小美女') // response.write('hello,beauty') } response.end() //结束写入,相应内容 }) //3.启动web服务器,监听端口,端口区分同一台电脑不同web应用的 server.listen(3000, () => console.log('服务器监听成功,监听3000端口...')) 操作: 启动服务=》集成终端 发起请求=》地址栏输入 ip地址:端口//请求的东西 ex:http://127.0.0.1:3000/productlist
04.数据库【掌握】
数据库 - 持久化存储数据库的仓库 - 在数据库中以 二维表结构形式存储数据,一个数据库可以有多张表 表结构: 字段名 描述表信息,商品表中描述商品信息 记录 表示一条条的商品 商品ID 商品名称 商品价格 1001 javascript编程 89.98 1002 css编程 59.98 创建表: 1.表结构 字段名 数据类型 商品ID (数值) int 商品名称 (字符串) varchar(可变长度) char(固定长度) 2.添加记录 1001 javascript编程 89.98 数据库管理软件=》用来创建数据库 mysql oracle sqlserver DB2 甲骨文 微软 IBM 数据重要性 java
mySqual
mySqual下载: 甲骨文官网=》mysqual Community Server=>dowload 判断安装是否成功? 我的电脑 - 管理 - 服务 - mySqual - 双击 - 安装路径 操作mySqual服务器? 客户端命令行操作mySqual...了解 mysqual - bin - 搜索cmd - 输入>mysql -u root -p - 输入密码(命令显示) 命令 show database; 查看数据库 可视化mySqual? 启动 - 连接 - 创建表 数据库名 - 对应 - 应用名 练习: 1. 安装mysql数据库管理软件 2. 安装mysql可视化软件navcat 3. 使用navcat连接mysql数据库服务 4. 创建数据库名productdb 5. 创建表product 商品ID: id int 主键 商品名称: name vachar 商品价格: price dobule 商品数量: num int 商品地址: url varchar 6.添加记录
05.sql语句
SQL语言: 结构化查询语言 数据库操作一门语言,提供多条sql语句,操作数据库 - 创建数据库 - 创建表 sql语句 WHERE 条件 - 插入记录 INSERT INTO 表名 (字段名1,字段名2...)VALUES(值1,值2...) 如: 商品表product 插入一条记录, 1001 vue编程 88.99 1 http://xx.jpg INSERT INTO product (id,name,price,num,url)VALUES(1001,'vue编程',88.99,1,'https://img1.baidu.com/it/u=454394458,1998378568&fm=253&fmt=auto&app=138&f=JPEG') - 删除记录 DELETE FROM product WHERE id = 1003 - 查询记录 SELECT id,name,price,num FROM product SELECT id,name,num FROM product WHERE price>80 - 修改记录 UPDATE product SET `name` = 'VUE高级编程' WHERE id=1006 如何运行mySql语句? navicat - 查询 - 新建查询 - 写入语句 - 运行 - 受影响行1行(成功执行) # 注释
06.后端程序集成数据库【掌握】
1.后端程序连接数据库 下载第三方mysql数据库模块 npm install mysql //下载 引入mysql模块 const mysql = require('mysql') 操作: 对应文件 - 集成终端 - 执行>npm install mysql - node_modules(下载成功) - 写程序 - 后端执行代码用集成终端 node命令 2.执行sql语句 3.处理结果集
程序: //1.引入mysqual模块 const mysql = require('mysql') //2.获取数据库连接对象 let connection = mysql.createConnection({ //创建链接 host: 'localhost', user: 'root', password: '12345z', database: 'productdb' }) //建立链接 connection.connect() //后端程序和数据库链接成功 //执行mysql语句 let sql = 'SELECT id,name,price,num,url FROM product ' // let sql = "INSERT INTO product (id,name,price,num,url)VALUES(1008,'vue编程',88.99,1,'https://img1.baidu.com/it/u=454394458,1998378568&fm=253&fmt=auto&app=138&f=JPEG') " connection.query(sql, function (err, data) { //err是错误对象,如果数据库出错,为true //data数据库正常返回的数据 if (err) { console.log('数据库出错', err); return; } console.log(data); }) //关闭数据库连接 connection.end()
o&app=138&f=JPEG’) " connection.query(sql, function (err, data) { //err是错误对象,如果数据库出错,为true //data数据库正常返回的数据 if (err) { console.log(‘数据库出错’, err); return; } console.log(data); }) //关闭数据库连接 connection.end()