From 8052b7524b69201472412dd06d619a40320cc3d9 Mon Sep 17 00:00:00 2001 From: JerryGong Date: Fri, 10 Jul 2015 08:00:19 +0800 Subject: [PATCH] comment and modification from Jerry --- .../imooc/app.js" | 9 +++++++-- .../imooc/schemas/movie.js" | 3 ++- .../imooc/views/pages/admin.jade" | 5 ++++- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git "a/nodejs/\347\253\231\347\202\271\345\273\272\350\256\276/imooc/app.js" "b/nodejs/\347\253\231\347\202\271\345\273\272\350\256\276/imooc/app.js" index 554560d..4243a7d 100644 --- "a/nodejs/\347\253\231\347\202\271\345\273\272\350\256\276/imooc/app.js" +++ "b/nodejs/\347\253\231\347\202\271\345\273\272\350\256\276/imooc/app.js" @@ -18,8 +18,10 @@ app.set('views', './views/pages'); //使用的模板引擎 app.set('view engine', 'jade'); - -app.use(bodyParser.urlencoded({extended: false})); +// extended A new body object containing the parsed data is populated on the request object after the middleware (i.e. req.body). This object will contain key-value pairs, where the value can be a string or array (when extended is false), or any type (when extended is true). +// 设置为false时只能解析 value 为 string 和 数组,为true的时候可以解析value 是任意的。 +// 我测试了下,用true 才能得到结果^^ +app.use(bodyParser.urlencoded({extended: true})); app.use(bodyParser.json()); //静态资源的路径 @@ -102,6 +104,9 @@ app.post('/admin/movie/new', function (res, req) { var id = res.body.movie._id; var movieObj = req.body.movie; var _movie; + // 我卡在这好久,原来视频写的也是 !=='underfined'但是这表明id被建立但是没有赋值的情况。 + // 最后改成 id!=="" 才顺利post成功。 + // 其实if(id)就可以了,只要值为trusy就好,""本身就是falsy所以会建立 Movie if (id !== 'undefined') { Movie.findById(id, function (err, movie) { if (err) { diff --git "a/nodejs/\347\253\231\347\202\271\345\273\272\350\256\276/imooc/schemas/movie.js" "b/nodejs/\347\253\231\347\202\271\345\273\272\350\256\276/imooc/schemas/movie.js" index c521de9..75b32bd 100644 --- "a/nodejs/\347\253\231\347\202\271\345\273\272\350\256\276/imooc/schemas/movie.js" +++ "b/nodejs/\347\253\231\347\202\271\345\273\272\350\256\276/imooc/schemas/movie.js" @@ -28,7 +28,8 @@ MovieSchema.pre('save', function () { } else { this.meta.updateAt = Date.now() } - + // 经常容易忘了next() 然后就悲剧了 + // 这种middle ware 一定要加next ^_^ next(); }); diff --git "a/nodejs/\347\253\231\347\202\271\345\273\272\350\256\276/imooc/views/pages/admin.jade" "b/nodejs/\347\253\231\347\202\271\345\273\272\350\256\276/imooc/views/pages/admin.jade" index f348fec..784f025 100644 --- "a/nodejs/\347\253\231\347\202\271\345\273\272\350\256\276/imooc/views/pages/admin.jade" +++ "b/nodejs/\347\253\231\347\202\271\345\273\272\350\256\276/imooc/views/pages/admin.jade" @@ -3,7 +3,10 @@ block content .container .row form.form-horizontal(method="post",action="/admin/movie/new") - input(type="hidden",name="movie[_id]",value="#{movie{_id}") + //- typo -> #{movie{_id}} + //- input#title.form-control(type="text", name="movie[title]", value=movie.title) + //- 不太确定 name="movie{...}" 能不能把post的数据装到movie对象中~ 请帮我解答下 ,多谢 + input(type="hidden",name="movie[_id]",value="#{movie_id}") .form-group label.col-sm-2.control-label(for="title") 电影名字 .col-sm-10