imooc movie

node+mongodb 建站攻略(一期)

用的都是我熟悉的技术,看了别人的开发过程,自己也学到了一些新的知识

生成配置文件

开发结束后,可以使用bower init来生成前端的配置文件。

不过在bower install *时已经生成了。

可以使用 npm init来生成后端的配置文件

不过使用express -e *时,也会生成package.json。npm install * --save才会保存到package.json,开发结束后,把package.json删了,重新生成一次。

删除

可以使用type: delete;

之前也知道,但还一直使用$.get来做。

表单提交

body-parser, extend=true;
form name=movie[title];
可以直接取出req.body.movie;

views

修改app.js,把router指向的view目录改为views/pages
在views中新建includes和pages

mongoose schema

//保存之前的操作
// next()的位置要注意,否则会先save,再pre。
MoiveSchema.pre('save', funciton(){});
// 把一系列的方法抽象出来,model
MovieSchema.statics = {}
// document
UserSchema.methods = {}

日期格式化

npm install moment

在app.js中,app.locals.moment = require('moment');
早list.ejs中,<%= moment(movie.meta.updateAt).format('MM/DD/YYYY') %>

if()判断

false 0 undefined null NaN '' => false
true 1 {} [] '0' => true

属性复制

//复制**source**对象中的所有属性覆盖到**destination**对象上,并且返回 **destination** 对象. 复制是按顺序的, 所以后面的对象属性会把前面的对象属性覆盖掉(如果有重复).
_movie = _.extend(movie, movie_obj);

grunt集成自动重启

之前只在前端用过,现在后端也可以用。

npm install grunt -g
npm install grunt-cli -g
npm install grunt-contrib-watch --save-dev
npm install grunt-nodemon --save-dev
npm install grunt-concurrent--save-dev

password

bcrypt比较好一些

获取参数

  • :id => params.id
  • id=12 => query.id get
  • {id: 12} => body.id post

函数结束

// 下面的语句还会执行
res.redirect('/');
// 下面的语句不执行
return res.redirect('/');
// 下面的语句不执行
res.redirect('/');
return false;

app调用router新方式

为了能在router中给app.locals添加本地变量,好在views中使用
也可以使用res.locas,但app好一点

以index.js为例
删掉require('index.js'); app.use('/', router);
添加require('./routes/index')(app);

要放在session后面

index.js中通过module.exports = function(app){}抛出。

权限控制

学到很多

role使用number类型来规划
用中间件来验证signinRequired(), adminRequired(),效率确实挺高的。

运行环境

根据不同的运行环境,配置相应的信息。现在配置了dev
根据不同的express版本,使用不同的方式配置信息,现在是4.x

评论的存储 查询 呈现

schema 通过objectId联系
查询,通过回调函数,populate方法
呈现,通过面板和媒体对象组件

用户之间的相互回复

创建input:$('')
$('input'): 选择input

new 对象

_movie = new Movie(movie_obj);

如果Movie没有a属性,movie_obj有a属性,结果_movie还是没有a属性

中间件

才会有next这个参数

你可能感兴趣的:(imooc movie)