Node.js学习 (十) Express

这里先说安装一个服务自动重启工具 nodemon ,这个工具省去我们手动重启node服务的步骤非常方便

npm install --global nodemon 
路由
//express搭建服务器
var express = require('express')
var app = express()

get:

app.get() 当网络以 GET 方式请求服务 / 的时候

app.get('/', function (req, res) {
  //返回数据
  res.send(`这里是一个明文请求`)
})

post:

app.post() 当网络以 POST 方式请求服务 / 的时候

app.post('/', function (req, res) {
  //返回数据
  res.send(`这里是一个密文请求`)
})
Express使用art-templete

app.engine('art', require('express-art-template')) 第一个参数,表示,当渲染以 .art 结尾的文件的时候,使用 art-template 模板引擎
express-art-template 是专门用来在 Express 中把 art-template 整合到 Express
虽然外面这里不需要记载 art-template 但是也必须安装
原因就在于 express-art-template 依赖了 art-template

var express = require('express')
//POST数据解析插件
var bodyParser = require('body-parser')

var app = express()

app.use('/public/', express.static('./public/'))

// 配置使用 art-template 模板引擎
app.engine('html', require('express-art-template'))

// Express 为 Response 相应对象提供了一个方法:render
// render 方法默认是不可以使用,但是如果配置了模板引擎就可以使用了

// res.render('html模板名', {模板数据})

// 第一个参数不能写路径,默认会去项目中的 views 目录查找该模板文件
// 也就是说 Express 有一个约定:开发人员把所有的视图文件都放到 views 目录中

// 如果想要修改默认的 views 目录,则可以
// app.set('views', render函数的默认路径)

// 配置 body-parser 中间件(插件,专门用来解析表单 POST 请求体)
// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }))
// parse application/json
app.use(bodyParser.json())

var comments = [{
    name: '张三',
    message: '今天天气不错!',
    dateTime: '2015-10-16'
  },
  {
    name: '张三2',
    message: '今天天气不错!',
    dateTime: '2015-10-16'
  },
  {
    name: '张三3',
    message: '今天天气不错!',
    dateTime: '2015-10-16'
  },
  {
    name: '张三4',
    message: '今天天气不错!',
    dateTime: '2015-10-16'
  },
  {
    name: '张三5',
    message: '今天天气不错!',
    dateTime: '2015-10-16'
  }
]

app.get('/', function (req, res) {
  res.render('index.html', {
    comments: comments
  })
})

app.get('/post', function (req, res) {
  res.render('post.html')
})

// 当以 POST 请求 /post 的时候,执行指定的处理函数
// 这样的话我们就可以利用不同的请求方法让一个请求路径使用多次
app.post('/post', function (req, res) {
  // 1. 获取表单 POST 请求体数据
  // 2. 处理
  // 3. 发送响应

  // req.query 只能拿 get 请求参数
  // console.log(req.query)

  //通过req.body 获取表单POST数据,获取的数据json格式  就好像req.query获取GET数据类似
  var comment = req.body
  comment.dateTime = '2017-11-5 10:58:51'
  comments.unshift(comment)

  // res.send
  // res.redirect
  // 这些方法 Express 会自动结束响应
  res.redirect('/')
  // res.statusCode = 302
  // res.setHeader('Location', '/') 
})

// app.get('/pinglun', function (req, res) {
//   var comment = req.query
//   comment.dateTime = '2017-11-5 10:58:51'
//   comments.unshift(comment)
//   res.redirect('/')
//   // res.statusCode = 302
//   // res.setHeader('Location', '/')
// })

app.listen(3000, function () {
  console.log('running...')
})

猜你喜欢

转载自blog.csdn.net/qq_39043923/article/details/89243929
今日推荐