![MEAN 26 MEAN 26](https://image.shishitao.com:8440/aHR0cHM6Ly9ia3FzaW1nLmlrYWZhbi5jb20vdXBsb2FkL2NoYXRncHQtcy5wbmc%2FIQ%3D%3D.png?!?w=700&webp=1)
MEAN 纸质书,第26章内容,使用社交媒体账户作为身份验证来源 先不看。
功能:登录,注册 或者 用户,身份认证和会话管理
功能描述:用户注册,登录,查看,编辑信息,logout。
1、express
虽然安装了express,但是没有使用express来生成一个project,而是自己搭建文件夹。
自己已经习惯了public,routes文件夹
自己搭建的目录,没有捕获异常,如果throw new Error('debug'); 不能正常返回。
官方推荐的更好一些。
2、models
在这里只创建User模型,具体的CRUD还是在controller中,
3、app.js
注册User模型
添加路由仍采用原来的方法
需要bodyparser cookieparser expresssession,
4、router
仍采用router.get()
get在router中处理,post在controller中处理
get
server:req.session.msg = 'access denied'; session可以直接传到页面上
client: <%= msg %>
post
app.post('user/update', users.updateUser);
app.post('user/profile', users.getUserProfile);
查询结果中返回user,判断时,做一个布尔转换:!user
login success: need regenerate;
logout success: need destroy
5、views
<%= msg %> ejs
{{ error }} angular
如何启动这个服务器呢?我没有用app.js,而是用了auth_server.js,但是按照之前的启动方法,会提示schema的问题。
现在改为了supervisor bin/www
还是按照原来的目录结构,把书上的内容新增进来。
安装mongodb, mongoose, connect-mongo@0.8.2,express-session, bower install angular
新建controllers,models,
不用static,用public;不用routes.js,用routes/index.js; 不同auth_server.js, 用app.js;
MissingSchemaError: Schema hasn't been registered for model "User".
Use mongoose.model(name, schema) 解决办法:
var mongoose = require('mongoose');
require('./models/users_m.js');
mongoose.connect('mongodb://localhost/myapp');
注意:
要放在route之前。
/user 能直接返回 用户信息,是因为有ng-controller='myController', 它会调用/user/profile获取数据。