设为首页 加入收藏

TOP

带你学Node系列之express-CRUD(二)
2019-09-17 18:59:17 】 浏览:59
Tags:Node 系列 express-CRUD
个参数是结果 * 成功是数组,失败是undefined */ exports.save = (student, callback) => { fs.readFile('./Db.json', 'utf8', (err, data) => { if (err) { return callback(err) } // 得到所有学生信息 let students = JSON.parse(data).students // 为新加的学生添加一个唯一的id属性(原来最大id属性值基础上加1) if (students.length === 0) { // 如果原始数据文件中没有学生信息 student.id = 1 } else { student.id = parseInt(students[students.length-1].id) + 1 } students.push(student) // 把新增加学生信息后的对象转换成字符串保存到数据文件中 let dataStr = JSON.stringify({ students: students }) fs.writeFile('./Db.json', dataStr, err => { if (err) { // 如果写入失败,则把错误对象传递给它 return callback(err) } // 成功就没错,所以错误对象是 null callback(null) }) }) } 。。。

由于篇幅原因,这里只罗列了添加学生信息API的实现代码。这里还有一个非常重要的知识点:怎样获取到一个函数内部异步操作的结果?

只能是通过回调函数。

或许有一些其他的内置模块,包括封装的API也可以拿到异步操作的结果,但是其底层都是利用了回调函数的思想。比如常见的Node内置events事件模块等。

  1. 视图文件编写

这里只需强调一点,在编写视图文件的时候,需要把一些动态的数据用模板语法包裹起来,能够使得模板引擎正确的渲染模板文件即可。

  1. 启动服务后看结果(略)

后话

需要学习资料和案例源码的伙伴可以去GitHub上查看,如果您对这案例或者学习资料有更好的看法,欢迎issue,或者评论,谢谢。

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇跨域的三种解决方案 下一篇WdatePicker日期控件使用与值获取..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目