nodejs
_wayliu
这个作者很懒,什么都没留下…
展开
-
express博客项目01
1.目录2.安装[3.express 的入口代码 ]1.目录 - express 下载、安装和使用,express 中间件机制 - 开发接口,连接数据库,实现记录,日志记录 - 分析 express 中间件原理2.安装安装(使用脚手架 express-generator)初始化代码介绍,处理路由使用中间件npm install express-generator -g安装nodemon和cross-envnpm i nodemon cross-env -Spackage.原创 2020-10-19 08:35:59 · 216 阅读 · 0 评论 -
05——博客项目之安全 01
1.安全1.安全sql注入:窃取数据库内容xss攻击: 窃取前端的cookie 内容密码加密: 保障用户信息安全(重要)server 端攻击方式非常多,预防手段非常多sql 注入最原始、最简单的攻击,从有了web2.0 就有了sql注入攻击攻击方式:输入了一个sql片段,最终拼接成一段攻击代码预防措施: 使用 mysql 的 escape 函数处理输入内容即可slelct username, realname from users where username='zhangsan原创 2020-10-18 23:14:22 · 69 阅读 · 0 评论 -
04——博客项目之日志02
1.文件目录2.封装写入日志函数3.使用1.文件目录![在这里插入图片描述](https://img-blog.csdnimg.cn/20201017231606550.png#pic_center)2.封装写入日志函数src/utils/log.js const fs = require('fs')const path = require('path')// 写日志function writeLog(writeStream, log) { writeStream.write原创 2020-10-17 23:23:49 · 62 阅读 · 0 评论 -
04——博客项目之日志01
1. 日志2.nodejs文件操作1.日志系统没有日志,就等于人没有眼睛。第一,访问日志 access log(server 端最重要日志)第二,自定义日志(包括自定义事件,错误记录等。)2.nodejs文件操作原创 2020-10-17 17:05:25 · 127 阅读 · 0 评论 -
03——博客项目之登陆05
1.和前端联调[2.演示]1.和前端联调登陆功能依赖cookie,必须用浏览器来联调cookie 跨域不共享,前端和server端必须同域需要用到 nginx 做代理,让前后端同域前端文件目录:1.开启http服务安装 http服务,开启8001端口npm install http-server -ghttp-server -p 8001由于服务器端口是800端口,而我们的端口是8001,所以会404,况且cookie跨域也不共享。解决方案是用nginx进行联调。2.使用n原创 2020-10-16 23:44:08 · 72 阅读 · 0 评论 -
03——博客项目之登陆04
1.nodejs 连接 redis 的 Demo2.nodejs 连接 redis–封装成工具1.nodejs 连接 redis 的 Demo目录:node-redisway liu@DESKTOP-NG9KB5L MINGW64 /e/work-vscode/node-redis$ npm i redis --saveindex.jsconst redis = require('redis')// 创建客户端const redisClient = redis.createClien原创 2020-10-11 23:48:35 · 76 阅读 · 0 评论 -
03——博客项目之登陆03
1.session设置问题2.redis 安装及使用1.session设置问题我们把session存在SESSION_DATA这一变量中。目前 session 直接是 js 变量,放在nodejs 进程内存中第一,进程内存有限,访问量过大,内存暴增怎么办?第二:正式上线运行是多进程,进程之间内存无法共享解决方案 redisweb server 最常用的缓存数据库,数据存放在内存中相比于 mysql,访问速度快(内存和硬盘不是一个数量级的)但是成本更高,可存储的数据量更小(原创 2020-10-11 22:08:36 · 59 阅读 · 0 评论 -
03——博客项目之登陆02
1.session2.session演示1.sessioncookie的问题:暴露username,很危险,同时cookie也小(5kb)如何解决:cookie中存储userid,server端对应 username解决方案:session,即server端存储用户信息2.session演示app.jsconst handleBlogRouter = require('./src/router/blog')const handleUserRouter = require('./sr原创 2020-10-11 21:29:07 · 66 阅读 · 0 评论 -
03——博客项目之登陆01
1.简介2.cookie介绍3.模拟服务器端修改cookie4.cookie做限制1.简介核心:登陆校验 & 登陆信息存储注册跟新建博客一样,而且现在一般都是手机验证码什么的了。目录cookie 和 sessionsession 写入 redis开发登陆功能,和前端联调(用到nginx反向代理)2.cookie什么是cookieJavaScript操作cookie,浏览器中查看cookieserver 端操作 cookie,实现登陆验证什么是cookie?原创 2020-10-11 18:08:45 · 95 阅读 · 0 评论 -
02——开发博客之数据存储04
API对接mysql(博客更新)controller/blog,jsconst updateBlog = (id, blogData = {}) => { const title = blogData.title const content = blogData.content const sql = ` update blog set title='${title}',content='${content}' where id=${id} `原创 2020-10-10 22:02:33 · 142 阅读 · 0 评论 -
02——开发博客之数据存储03
API对接mysql(博客详情)controller/blog.js// 博客详情处理逻辑const getDetail = (id) => { const sql = `select * from blog where id=${id}` return exec(sql).then(rows => { return rows[0] })}router/blog.js // 获取博客详情 if (method === 'GET' &a原创 2020-10-10 00:49:20 · 110 阅读 · 0 评论 -
02——开发博客之数据存储02(博客列表)
1.API对接mysql(博客列表)1.API对接mysql(博客列表)controller/blog.jsconst {exec} = require('../db/mysql')// 博客列表处理逻辑const getList = (author, keyword) => { let sql = `select * from blog where 1=1 ` if (author) { sql += `and author='${author}' ` }原创 2020-10-10 00:13:01 · 80 阅读 · 0 评论 -
02——开发博客之数据存储01
1.Node.js 操作 Mysql(Demo)2.在项目中实现Mysql 连接1.Node.js 操作 Mysql(Demo)示例:用demo 演示,不考虑使用封装: 将其封装为系统可用的工具使用: 让API直接操作数据库,不再使用假数据npm i mysqlindex.jsconst mysql = require('mysql')// 创建连接对象const con = mysql.createConnection({ host: 'localhost',原创 2020-10-09 22:46:08 · 102 阅读 · 0 评论 -
01——开发博客项目之接口06
1.更新博客接口2.删除博客接口3.登陆接口1.更新博客接口router/blog.js // 更新一篇博客 if (method === 'POST' && req.path ==='/api/blog/update') { const result = updateBlog(id, req.body) if (result) { return new SuccessModel() } else {原创 2020-10-09 01:02:40 · 147 阅读 · 0 评论 -
01——开发博客项目之接口05
1.处理postData2.新建博客接口1.处理postDataapp.jsconst handleBlogRouter = require('./src/router/blog')const handleUserRouter = require('./src/router/user')const querystring = require('querystring')// 用于处理 post dataconst getPostData = (req) => { const原创 2020-10-08 21:58:38 · 141 阅读 · 0 评论 -
01——开发博客项目之接口04
1.博客详情接口2.promise1.博客详情接口controller/blog.js// 博客详情处理逻辑const getDetail = (id) => { // 先返回假数据 return { id: 1, title: '标题A', content: '内容A', createTime: 1602154489614, author: 'zhangshan' }}module.原创 2020-10-08 21:08:10 · 115 阅读 · 0 评论 -
01——开发博客项目之接口03
1.返回模型2.博客列表接口1.返回模型文件目录![在这里插入图片描述](https://img-blog.csdnimg.cn/20201008184106710.png#pic_center)model/resModel.jsclass BaseModel { constructor(data, message) { // 兼容只传一个字符串的情况 if (typeof data === 'string') { this.mes原创 2020-10-08 19:38:28 · 255 阅读 · 1 评论 -
01——开发博客项目之接口02
1.搭建开发环境2.初始化路由1.搭建开发环境从0开始搭建,不使用任何框架使用nodemon 监测文件变化,自动重启 node使用 cross-env 设置环境变量,兼容mac linux 和windows安装 cross-envnpm install --save-dev cross-env文件目录package.json{ "name": "blog", "version": "1.0.0", "description": "", "main": "app.j原创 2020-10-08 18:28:53 · 116 阅读 · 0 评论 -
01——开发博客项目之接口01
1.从输入url到页面显示的过程2.nodejs处理http请求3.nodejs处理get请求4.nodejs处理post请求5.综合演练1.从输入url到显示页面的过程?DNS解析,建立TCP连接,发送http请求server 接收http请求,处理,并返回客户端接受到返回数据,处理数据(如渲染页面,执行js)2.nodejs 处理 http 请求 - get请求和querystring - post请求和postdata - 路由简单示例const http = requ原创 2020-10-08 15:57:51 · 326 阅读 · 0 评论 -
koa深入
1.安装(使用脚手架)1.安装(使用脚手架)// 全局安装koa脚手架npm i koa-generator -g//创建koa项目koa2 项目名//npm install & npm run dev设置环境变量npm i cross-env --save-devpackage.json{ "name": "server", "version": "0.1.0", "private": true, "scripts": { "start": "nod原创 2020-10-08 14:34:07 · 124 阅读 · 0 评论 -
koa2基础知识巩固梳理2
1.安装npm init -ynpm install koa --saveHello worldindex.jsconst koa = require('koa')const app = new koa()app.use(async ctx => { ctx.body = 'hello world'})app.listen(3000, () => { console.log('服务开启成功在3000端口')})2、get/post请求接收get原创 2020-10-08 11:42:17 · 132 阅读 · 0 评论 -
koa-router
const Koa = require('koa')const fs = require('fs')const app = new Koa()const Router = require('koa-router')let home = new Router()// 子路由1home.get('/', async ( ctx )=>{ let html = ` <ul> <li><a href="/page/helloworld"&原创 2020-09-28 13:13:01 · 199 阅读 · 0 评论 -
koa2基础知识巩固梳理
1.架设httpconst koa = require('koa')const app = new koa()app.listen(3000)通过这三行代码即可架设一个http服务,但是由于没有返回内容,浏览器上会看到not found。2.Context 对象Koa 提供一个 Context 对象,表示一次对话的上下文(包括 HTTP 请求和 HTTP 回复)。通过加工这个对象,就可以控制返回给用户的内容。const koa = require('koa')const app = ne原创 2020-09-28 12:48:08 · 217 阅读 · 0 评论