注意的细节
- webpack将我们的入口app.js和index.js相结合
2.某个路由下调controller层,如果这个界面仍需绑定事件,则封装函数,传sme.router实例化的router,来实现返回等操作
1.增:
1>.router.go('/position_save')
2>.使用jqury.form,来实现图片的上传
return new Promise((resolve, reject) => { var options = { "success": (result) => { resolve(result) }, "resetForm": true, "dataType": "json" }; $("#possave").ajaxSubmit(options) })
2.删
1>.$(this).attr('id'),然后调用后台接口
2>.router.go(`/position?_=${id}`)利用query的传参机制达到刷新页面效果
3.改(1>>路由?传参:req.query.什么什么。2>>动态路由。。3>>go后面{}传值},req.body接受)
1>>>(获取单条数据,后台的listone接口) router.go('/position_update', {
id
})
2>>>(修改本条数据)
$('#posupdate').serialize()将表单字段转化为companyName=1&positionName=1&city=2&salary=2&id=5bcff1abccbc5010ec8edb95样式,后台通过post的 req.body接受数据
4查
1>调后端接口返回数据和art-templete模板结合渲染页面
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
@前端路由切换渲染局部数据思路
1.app.js里面载入路由模块。。。
2.路由模块里实例化路由对象 new SMERouter,并且定义前端界面路由,
3.调用controller暴露的接口,并且传入 new SMERouter实例化对象router进行页面跳转等,
4.如果想要获取全部数据则调controller暴露全部数据的模块,使用art-templete模板引擎将模板和数据结合:
const listall = async ({
router,
res
}) => {
let html = template.render(positionListTpl, {
data: (await positionModel.listall()).data
})
res.render(html)//sme.router的设计和express的路由中间件很相似,所以将html安在之前实例化的sme.router对象里,来达到前端路由转化局部插座变化信息效果,。。。
5.model层‘type:get’请求后台接口数据。。。
const listall = () => { return $.ajax({ url: '/api/position/listall', success: (result) => { return result } }) }
前端登录注册逻辑
1.在app.js处调用controller的user的render模块
2.
let signupClicked = true // 点的是否是登录
let isSignin = false //是否登录
1>> 调controller层 1.调接口判断是否登录(后台session),如果是登录则渲染登录的界面(登录和要登录都在一个模板里,isSignin判断)
2.绑定登录注册按钮click,signupClicked 控制登录注册模板
3.登录:serialize获取信息,调登录或者注册接口
4.后台返回的值。如果点的登录而且成功了,然后把后台返回的username渲染。