express起步

开启服务

  1. 安装express 。npm install express
  2. 引入express。const express = require(‘express’);
  3. 监听端口。const app = express();app.listen(port);

引入模板

  1. npm install hbs –save
  2. const hbs = require(‘hbs’);
  3. app. set(‘view engine’ , ‘hbs’);
  4. app.js 同级目录创建views文件夹。创建layout.hbs为模板文件。

数据连接

  1. 安装mongoDB
  2. npm install –save mongoose(一种数据映射)
  3. 建好文件夹的mvc层,schema ,model , controller,views
  4. view下写好hbs页面
  5. schema下写好js中的类
  6. model做中间操作
  7. controller下做数据存储操作
  8. 对于post提交表单,需要npm install –save body-parser处理json结构。然后在毁掉函数req.body.obj获取json对象。

在schema字段加unique : true时 ,save后出现了 E11000 duplicate key error collection 。错误,等待解决。暂时不增设unique字段。

hbs简单语法

{{#if user}}
{{else}}
{{/if}}

可以由render()方法设置数据模板

res.render('signup' , {user: {name : 'magic' , age : 18}});

登录模块

登录模块首先完成注册的流程,controller-model-schema的save方法。并且要注意一些代码的细节,console(”当前错误页+错误方法”)还有一些if null的判断,以及用户名唯一的判断等。要注意细节。
然后就是登录模块。方法同上

这里要注意回调函数的作用 , 在node里 , 经常会出现上下关系的代码 , 却不会从上到下执行。若想在某一个方法执行完成才去执行另一段代码,需要采用回调的方式

加密

登录模块的密码需要加密存进数据库。
所以要先安装加密模块。 npm install bcrypt –save-dev
由于暂时不深入研究,只需要能转码存入数据库和登录时的验证即可。

session

登录注册基本功能完成后 , 就考虑保存登录用户的状态,以更新页面信息。

二级菜单

绝对定位来实现。

.class.class {css} class=”user item”会继承父类的css属性

二级菜单的显示和隐藏可以用onclick实现。在使用document.onclick时会设计dom的捕获和冒泡,要判断event.target而排除子元素。

论坛模块

发文章

使用markdown-it插件 npminstall markdown-it –save
按官方实例引入, console后发现得到了想得到的html标签,取不知如何在hbs模板渲染。思考了一会翻看hbs api最终还是使用res.render而不是res.send等方法 , 在.hbs文件中使用三重大括号{{{}}} 而使内容不对标签进行转义。

布局

关于css , 目前有一个疑惑的bug , 在firefox浏览器下 , 连续点击刷新会让css无法加载,导致页面没有样式。
重新修改了css样式,使用flex流式布局,使论坛有基础的响应式布局。
优化登录模块,增加表单验证。这里我使用了validate.js前端插件。
其中报错

The resource from “http://139.199.168.15:3000/libs/validate.js” was blocked due to MIME type mismatch (X-Content-Type-Options: nosniff).

其实就是文件路径写错了,找了半天。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值