-node.js 文章的学习 0603

今天花了多少时间在编程的学习上: 3

今天完成的事情:

  1. 按照新的代码再过了一遍教程, 大概明白了每一步要做点什么
  2. 自己在不怎么看源码的情况下模仿写了一个类似的脚本, 简单跑起来了明天再完善一下

明天计划的事情:

  1. 列表页删除和列表页更新功能的添加

遇到的问题:

  1. 什么时候用get什么时候用Post
  2. id值是从哪里来的
  3. movie对象中的_id字段究竟是怎么生成的

收获:

过程中用到的一些库的作用

  1. __underscore, 用于对于已经有的代码的更新, 如下
 movie.findById(id, function (err, movie) {
            if (err) {
                console.log(err);
            }
            _movie = _underscore.extend(movie, movieObj); // 用新对象里的字段替换老的字段
            _movie.save(function (err, movie) {
                if (err) {
                    console.log(err);
                }
                res.redirect('/movie/' + movie._id);
            })
        })
  1. fetch究竟是用来干嘛的
  1. 调出数据库里面所有的数据
  2. 按照更新时间去排序
  3. 执行回调函数
  1. 在mongoose里面通过模型(model导出的为模型,最后在路由界面创造的document导出的才为真正可用的文件。movie = require('./models/movie.js');即app.js里面的这一条命令, 当然在具体的路由里面还要通过movies = movies引用他
  2. var id = req.params.id;获得url里面的id值,需要xxx库的支持
  3. res.redirect(url) 页面跳转
var id = req.body.movie._id;
    var movieObj = req.body.movie;
    var _movie = null;
//通过req.body.对象名.字段, 你可以引用到对象里面的字段
  1. id !== 'undefined' 判断id是否等于undefined一定要加引号, 不然会出错
  2. bodyParser.urlencoded模块用于解析req.body的数据,解析成功后覆盖原来的req.body,如果解析失败则为 {} 。该模块有一个属性extended,官方介绍如下:

The extended option allows to choose between parsing the URL-encoded data with the querystring library (when false) or the qs library (when true). Defaults to true, but using the default has been deprecated.

大致的意思就是:extended选项允许配置使用querystring(false)或qs(true)来解析数据,默认值是true,但这已经是不被赞成的了。

你可能感兴趣的:(-node.js 文章的学习 0603)