基本功能
在本地根据指定端口启动一个http server,等待着来自客户端的请求
当请求抵达时,根据请求的url,以设置的静态文件目录为base,映射得到文件位置
打开文件待读取
设置response header
发送文件到客户端
等待来自客户端的下一个请求
利用express 执行node.js
var app = express()
然后设置静态文件目录,规则如下:
- 当以 /public/ 开头的时候,去./public/ 目录中找对应的资源
app.use('/public/',express.static('./public/'))
- 若以其他开头,比如以‘/a/’为例,则必须是/a/public 目录中的资源具体路径。
app.use('/public/',express.static('./public/'))
- 当省略第一个参数的时候,i则可以通过 省略 /public 的方式来访问
app.use(express.statice('./public/'))
配置使用 art-template 模板引擎
因为利用fs
文件模块读取的数据,是2进制字符串,需要转译之后才可以变为人们可以看得懂的文件,同时也要注意文件的格式。
app.engine('html', require('express-art-template'))
第一个参数 表示, 当渲染以 .html 结尾的文件的时候, 使用art-template 模板引擎
express-art-template
是专门用来在 Express 中,把 art-template
整合到express 中。
注意点:虽然引用 art-template
但是也必须安装art-template
.原因就在于 express-art-template 依赖了 art-template
Express 为 Response 相应的对象提供了一个方法,render
render
方法默认是不可以使用的,但是如果配置了模板引擎就可以使用, 第一个参数不可以写路径,默认会去项目中的 views 目录中查找该模板文件 ,也就是说 Express 有一个约定:开发人员把所有的视图文件都放到了 views 目录中。
如果想要修改默认的 views目录
app.set('views', render 函数的默认路径)
// 第一个参数必须是 'views'
配置路由
app.get('/login', (req, res) => {
console.log('********************')
console.log(req.body)
res.render('login.html');
})
当请求是/login的时候,返回login页面
开启服务
app.listen(3000, () => {
console.log('开启3000端口‘’)
})
开启3000端口的服务
注意:在 Express 中没有内置 获取表单 post 请求体的API。
如果涉及到表单,这里我们需要使用一个第三方包:body-parser。
安装:
npm install --save body-parser
配置如下:
var express = require('express')
var bodyParser = require('body-parser')
const localPort = 3000
var app = express()
// create application/json parser
var jsonParser = bodyParser.json()
// create application/x-www-form-urlencoded parser
var urlencodedParser = bodyParser.urlencoded({ extended: false })
app.post('/login', (req, res) => {
console.log('********************')
console.log(req.body)
res.end();
})
app.listen(localPort, () => {
//console.log('http://127.0.0.1:%s', host, port)
})