上周完成了相册上传和展示功能,这周完成了博客的展示、修改、新增和删除功能,我的代码放在 github 上。

一、CRUD
crud是指在做计算处理时的增加(Create)、读取查询(Read)、更新(Update)和删除(Delete)几个单词的首字母简写。crud主要被用在描述软件系统中数据库或者持久层的基本操作功能。 —— 《百度百科》
我们在平时浏览网页的时候,任何的操作,都可以归纳 crud 的其中一个,浏览天猫商品这是查询操作,新增收货地址,这是新增操作,等等。
二、json
1. 什么是 json
json是一种文件类型,文件都是以.json
结尾,json 文件的内容和对象字面量很像。
对象字面量
写在花括弧里面,键值对,键可加可不加引号,引号可以是单引号也可以是双引号 { name: 'yml' }
JSON
写在花括弧里,也是键值对,但是它的 键必须都加上引号,键必须加引号且是双引号,值如果是字符串类型也要加双引号 { "name": "yml", "age": 14 }
2. json 与字符串转换
JSON.parse();
把字符串转换为 json格式,
JSON.parse('{ "name": "yml" }') 将字符串转为json格式
JSON.parse("yml") 如果字符串类型不对,就会报错
JSON.stringify();
将 json 格式转换为字符串;
JSON.stringify({ name: 'yml' }) 将对象转为字符串 => '{ "name": "yml" }'
JSON.stringify({ name: 'yml' }, null, 4) 格式化 json 文件
三、fs
博客增删改查数据源,是写在 index.json 文件里,通过 fs 提供的 API 读取文件内容,和写入文件内容。
1. 读取文件内容
// 将文件内容读到 node 程序中
const stream = fs.readFileSync(path.join(process.cwd(), 'public/articles/index.json'));
const str = stream.toString();
let articles = JSON.parse(str);
使用 fs.readFileSync() 读取到的文件内容是字节流形式,使用 tostring()转换为字符串格式,用 JSON.parse()将字符串转换为 json 格式。
2. 向文件里写内容
// 将 node 程序中的内容写到文件中
fs.writeFileSync(path.join(process.cwd(), 'public/articles/index.json'), JSON.stringify(articles, null, 4));
四、数组的方法
1. arr.map()
该方法可以循环数组。
var arr = [ 1, 2, 3, 4, 5 ]
arr = arr.map(item => item * item);
console.log(arr);
// [1, 4, 9, 16, 25]
2. arr.filter()
该方法可以过滤数组,表达式为 true 保留,过滤表达式为 false 的项。
var arr = [ 1, 2, 3, 4, 5 ]
arr = arr.filter(item => item > 2)
console.log(arr);
// [3, 4, 5]
3. arr.find()
该方法是寻找数组中的一项。
var arr = [ 1, 2, 3, 4, 5 ]
var item = arr.find(item => item === 2)
console.log(arr);
// 2
五、前后端数据交互
1. req.params
客户端数据通过 url 传输给服务端,参数写在 url 里 /user/13
// 获取客户端传来的数据
var name= req.params.name // name=13
2. req.query
客户端数据通过 url 传输给服务端,不过是写在问号后面 /user?name=dreamlin517
// 获取客户端传来的数据
var name= req.query.name // name=dreamlin517
3. req.body
通过 form 表单提交的数据是放在 req.body,不过放进去的格式,我们看不懂,需要转换一下,需要使用第三方包 body-parser
。
const bodyParser = require('body-parser')
// application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }))
// application/json
app.use(bodyParser.json())
六、ajax
ajax 是 jQuery 里的方法,使用前我们要先引用 jQuery 这个文件。
$.ajax({
url: '/article',
method: 'delete',
data: { title: title },
success: function (res) {
location.href = "/blog";
}
});
七、npm 全局安装与本地安装的区别
npm install supervisor -g
加上 -g
就是全局安装,不加就是本地安装。
全局安装一般安装的包都是命令行的,比如:hexo、supervisor,本地安装的包都是功能性的,在 node 程序里通过 require('xxx') 引入才能使用的。
八、 git 提交信息格式

在 这里 看到的提交规范。

网友评论