和我一起学Node.js ===>第4天

nodejs修改完代码自动重启(热部署)
和我一起学Node.js ===>第4天
静态资源服务
app.use("映射前缀","资源位置")
和我一起学Node.js ===>第4天
在Express中使用art-template模板引擎:
和我一起学Node.js ===>第4天
 
app.engine('html', require('express-art-template'))
//新增res.render()
app.set('views','新目录路径')
 
 
在express中使用第三方插件获取表单信息:
body-parser(中间件,用来解析post表单数据)
var bodyParser = require('body-parser')
// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }))
// parse application/json
app.use(bodyParser.json())
 
和我一起学Node.js ===>第4天
使用步骤:
和我一起学Node.js ===>第4天
路由模块抽离(结构清晰)
 
app.js
//   挂载路由
 
var router = require('./router')
// 把路由容器挂载到 app 服务中
app.use(router)
 
 
router.js
 
/**
* router.js 路由模块
* 职责:
*   处理路由
*   根据不同的请求方法+请求路径设置具体的请求处理函数
* 模块职责要单一,不要乱写
* 我们划分模块的目的就是为了增强项目代码的可维护性
* 提升开发效率
*/
 
var fs = require('fs')
var Student = require('./student')
 
// Express 提供了一种更好的方式
// 专门用来包装路由的
var express = require('express')
 
// 1. 创建一个路由容器
var router = express.Router()
 
// 2. 把路由都挂载到 router 路由容器中
 
/*
* 渲染学生列表页面
*/
router.get('/students', function (req, res) {
  Student.find(function (err, students) {
    if (err) {
      return res.status(500).send('Server error.')
    }
    res.render('index.html', {
      fruits: [
        '苹果',
        '香蕉',
        '橘子'
      ],
      students: students
    })
  })
})
 
// 3. 把 router 导出
module.exports = router
注:body-parse要放在挂在路由之前
回调函数:
和我一起学Node.js ===>第4天
 
//es6中新增方法find,遇到匹配项会返回
var resultItem=数组.find(fun(item){
    return item.xx==xx
})
//返回的是 下标index
var resultItemIndex=数组.findIndex(fun(item){
    return item.xx==xx
})