express项目生成

一、渲染

一. 服务器渲染

特性:把服务端的数据和页面结合完毕之后,给客户端返回整个页面(没有ajax)
服务器渲染使用引擎模板art-template或者ejs。

1.art-template模板

1.引入安装好的art-template

const artTemplate=require('art-template')

2.把数据和模板结合

 //2 数据与模板结合,两个参数分别为页面绝对路径和数据对象
    const html=artTemplate(path.join(__dirname,'./views7/index.html'),bfy)

3.返回处理好的页面

res.send(html)

如需在页面中使用arttemplate的对象数据,使用两种方法:
1 标准语法(插值表达式{{name}}
2 原始语法(<%=name%>

2.ejs模板(官方用法)
  1. 安装 cnpm install ejs -S
  2. 设置ejs模板的类型和位置(在请求之前设置
app.set('engine view','ejs')//设置模板类型
app.set('views',path.join(__dirname,'./views7'))//设置模板位置
  1. render渲染
app.get('/home',(req,res)=>{
    const bfy={
        name:'bfy',
        age:18
    }
    //4 render渲染页面
    res.render('home.ejs',bfy)//两个参数,页面和数据
})

需注意的是这里的view里面的html页面渲染数据是不可以用标准语法,只能用原始语法

二. 客户端渲染

特性:通过ajax请求后台接口,把数据和某个代码片段结合,然后拼接到页面中。(局部 异步 刷新

二、后端路由模块

后端路由 实际就是前端请求的url与后端对该url处理函数的对应关系例如、

app.get('/index.html',(req,res)=>{
    const bfy={
        name:'bfy',
        age:18
    }
    //2 数据与模板结合,两个参数分别为页面绝对路径和数据对象
    const html=artTemplate(path.join(__dirname,'./views7/index.html'),bfy)

    res.send(html)
})

这就是一个路由,/index.html为请求url,后面回调函数即为后端处理函数,
可以将所有的这种函数(路由)模块化为router.js文件,具体步骤为:

  1. 所有的路由函数写入router.js,引入express和需要的包并且实例化对象:const router=express.Router()
  2. 挂载关键字app换为routerrouter.get(...)
  3. 暴露module.exports = router
  4. app.js中引入注册router模块即可(相当于引入中间件):const router= require('./router') app.use(router)

三、express生成器

  1. 安装:cnpm insatall express-generator -g
  2. 初始化项目(在根目录下):终端中express 项目名即可,非常便捷
  3. cnpm install 安装node_modules依赖包
  4. cnpm start启动项目,注意这里不能nodemon app.js运行因为app.js文件中没有监听端口

四、接口文档

接口文档包含api,返回数据类型,请求方式,参数等,书写很繁琐,modejs中科一使用apidoc自动生成:

  1. 安装apidoc:cnpm install apidoc -g
  2. 在项目的根目录新建一个apidoc.json文件,写入官方文档里的格式代码:
{
  "name": "example",//文档名
  "version": "0.1.0",//版本号
  "description": "apiDoc basic example",//描述
  "title": "Custom apiDoc browser title",//文档网页标题
  "url" : "https://api.github.com/v1"//文档地址
}
  1. 在需要生成接口文档的接口上面注解
/**
 * @api {get} /user/:id 根据id获取用户信息
 * @apiName GetUser       此名不能重复
 * @apiGroup User         api组(路由组)
 *
 * @apiParam {Number} id 用户id
 *
 * @apiSuccess {String} firstname Firstname of the User. 返回的模板,可自己定义
 * @apiSuccess {String} lastname  Lastname of the User.
 */
  1. 终端运行命令生成文档apidoc -i myapp/ -o apidoc/ -t mytemplate/
    其中-i是以哪个文件夹生成,-o时生成到哪个文件,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值