Express-Node.js的web开发框架

安装

npm install --save express

hello world

var express = require('express')

var app = express()

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

app.get('/', function (req, res) {
  res.send('hello world')
})

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

基本路由

get:

app.get('/', function (req, res) {
  res.send('hello world')
})

post:

app.post('/', function (req, res) {
  res.send('Got a POST request')
})

静态服务

// /public资源
app.use(express.static('public'))

// /file资源
app.use(express.static('file'))

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

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

// /static/x
app.use('./static',express.static(path.join(_dirname,'public')))

在Express中获取表单GET请求参数

Express内置了一个API,可以通过req.query来获取

req.query

在Express中获取表达POST请求体数据

在Express中没有内置获取表单POST请求体的API,这里我们需要第三方包:body-parser
安装:

npm install --save body-parser

配置:

var express = require('express')
//0. 引包
var bodyParser = require('body-parser')
var app = express()

//配置 body-parser'
//只要加入了这个配置,则在req请求对象上会多出来一个属性:body
//也就是说你可以通过req.body来获取表单POST请求体数据
app.use(bodyParser.urlencoded({extended:false}))
app.use(bodyParser.json())

使用:

app.use(function(req,res){
    res.setHeader('Content-Type','text/plain')
    res.write('you posted:\n')
    //可以通过req-body来获取表单POST请求体数据
    res.end(JSON.stringify(req.body,null,2))
})

在Express中配置使用art-template模板引擎

art-template-GitHub仓库
art-template 官方文档

  1. 安装
npm install --save art-template
npm install --save express-art-template 
  1. 配置
    配置使用 art-template 模板引擎
    第一个参数,表示,当渲染以 .art 结尾的文件的时候,使用 art-template 模板引擎
app.engine('art', require('express-art-template'))
  1. 使用
    Express 为 Response 相应对象提供了一个方法:render
    render 方法默认是不可以使用,但是如果配置了模板引擎就可以使用了
    res.render(‘html模板名’, {模板数据})
    第一个参数不能写路径,默认会去项目中的 views 目录查找该模板文件
    也就是说 Express 有一个约定:开发人员把所有的视图文件都放到 views 目录中
app.get('/', function (req, res) {
  res.render('index.html', {
     title: 'hello world'
  })
})

如果想要修改默认的 views视图渲染存储目录,可以

// 注意:第一个参数views千万不要写错
app.set('views', 目录路径)

你可能感兴趣的:(nodejs)