node.js初探之静态服务

基本功能

在本地根据指定端口启动一个http server,等待着来自客户端的请求
当请求抵达时,根据请求的url,以设置的静态文件目录为base,映射得到文件位置
打开文件待读取
设置response header
发送文件到客户端
等待来自客户端的下一个请求

利用express 执行node.js

var app = express()

然后设置静态文件目录,规则如下:

  1. 当以 /public/ 开头的时候,去./public/ 目录中找对应的资源

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

  1. 若以其他开头,比如以‘/a/’为例,则必须是/a/public 目录中的资源具体路径。

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

  1. 当省略第一个参数的时候,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)
})

你可能感兴趣的:(node.js初探之静态服务)