今天花了多少時間在編程的學習上: 3
今天完成的事情:
- 按照新的代碼再過了一遍教程, 大概明白了每一步要做點什么
- 自己在不怎么看源碼的情況下模仿寫了一個類似的腳本, 簡單跑起來了明天再完善一下
明天計劃的事情:
- 列表頁刪除和列表頁更新功能的添加
遇到的問題:
- 什么時候用get什么時候用Post
- id值是從哪里來的
- movie對象中的_id字段究竟是怎么生成的
收獲:
過程中用到的一些庫的作用
- __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);
})
})
- fetch究竟是用來干嘛的
- 調出數據庫里面所有的數據
- 按照更新時間去排序
- 執(zhí)行回調函數
- 在mongoose里面通過模型(model導出的為模型,最后在路由界面創(chuàng)造的document導出的才為真正可用的文件。
movie = require('./models/movie.js');
即app.js里面的這一條命令, 當然在具體的路由里面還要通過movies = movies引用他 -
var id = req.params.id;
獲得url里面的id值,需要xxx庫的支持 - res.redirect(url) 頁面跳轉
var id = req.body.movie._id;
var movieObj = req.body.movie;
var _movie = null;
//通過req.body.對象名.字段, 你可以引用到對象里面的字段
-
id !== 'undefined'
判斷id是否等于undefined一定要加引號, 不然會出錯 - 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,但這已經是不被贊成的了。