用户登录

在这个添加新文章的页面上,有一组用户列表,发布内容的时候可以选择这个文章所属的用户 .. 现在我们可以在这里只显示一个当前登录的用户 .. 也就是默认情况下,谁发布的内容就会属于谁 ..

打开 post/create 这个视图 .. 显示这组用户选项用了一个 radio 组件 .. 这个组件是我们之前自己定义的 ..

组件的 items 的值就是一组选项需要的数据 .. 这个数据是 users .. 具体的值是在 PostController 那里传递过来的 .. 打开这个控制器 .. 找到它的 create 方法 ..

这里得到了一个 users .. 它的值现在是应用里的所有的用户 .. 当时我们这样做主要是为了演示在发布内容的界面上怎么样使用单选按钮,还有就是如何保存内容的关系 ..

现在可以这样 .. 先在方法的 context 参数里 .. 把 auth 解构出来 .. 然后在方法里,添加一个 userItems .. 一个数组 .. 里面暂时只添加一个项目 .. 它的值就是当前登录的用户 .. 一个 spread 操作符 .. auth.user.toJSON() .. auth.user 就是当前登录的用户 ..

再添加一个 checked,值设置成 true,这样这个用户项目会默认被选中 .. 因为在 radio 组件会我们会根据项目里的这个 checked 属性的值来判断选项的勾选状态 ..

现在传递给视图的 users 的值,可以替换成 userItems ...

预览

再回到内容发布界面 .. 刷新一下 .. 现在这个界面上的用户这里只有一个项目就是当前登录的用户 .. 并且它的默认的状态是被勾选上的 ..

store

保存新内容的时候会使用 store 这个方法来处理 .. 这里需要再修改一下 .. 现在我们在这里会根据创建内容表单上的 user_id 这个表单元素的值,找到对应的用户 .. 然后把新的文章内容跟这个用户关联到一块儿,保存在数据库里 ..

这个用户现在我们可以直接使用 auth.user ,就是当前登录的用户 .. 这样谁发布的内容就应该是属于谁的 ..

成功以后 .. 会做一次重定向 .. 这个重定向可以用一下 route 方法 .. 路由是 posts.show .. 一个 id 参数 .. 值是 post.id ..

再从这个方法的 context 参数里 .. 把 auth 拿出来用一下 ...

试验

回到浏览器,再试一下 .. 输入一个标题 .. 再随便输入点内容 .. 提交一下 ...

你会发现,刚才发布的内容会属于当前登录的这个用户 ..

谁发布的内容就属于谁的《 Node.js 应用:中间件与异常 》

统计

14696
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点