美文网首页前端
Node.js -- express

Node.js -- express

作者: aix91 | 来源:发表于2019-01-21 21:47 被阅读0次

1.express是什么

Express 是一个保持最小规模的灵活的 Node.js Web 应用程序开发框架,为 Web 和移动应用程序提供一组强大的功能。

2. express安装

在项目根目录下运行npm install express --save

3. 路径问题

  • /path => 绝对路径
  • c:/path => 绝对路径
  • ./path => 相对路径
  • path => 相对路径

4. express 简单实例

var express = require('express')
var app = express()
//指定路由
app.get("/", function (req, resp) {
    resp.send("hello world")
})
app.get("/about", function (req, resp) {
    resp.send("about me")
})
app.listen(3000, function () {
    console.log("app is running")
})
//指定公开目录 -- 用户可以直接访问
app.use('/public/',express.static('./public/'))

5. nodemon

使用nodemon插件,在修改代码后,可以自动重启node服务器

安装:npm install --global nodemon
运行:nodemom app.js

6. 直接访问静态资源

//直接请求静态资源
app.use(express.static('./public/'))
//请求静态资源路由以'/public/'开始
app.use('/public/',express.static('./public/'))

7. 使用模版art-template

Express为response提供了一个render('html模版',{模版数据})方法来直接渲染文件(art或者html结尾的文件).
默认情况下,视图文件放在views文件夹下。如果想要修改默认目录,可以使用app.set("views', render 函数的默认路径)来改变默认的路径。也可以直接在render函数中,指定文件详细的路径,如: resp.render("public/index.art")

//配置使用art-template
//engin 的第一个参数指定文件的后缀名,要与render里面文件的后缀名保持一致
app.engine("art",require('express-art-template'))
app.get("/", function (req, resp) {
    resp.render("404.art")
})

8. body-parser

express 中不能解析post请求,要引入第三方插件"body-parser": npm install --save body-parser, 这样就可以直接使用resp.body(); 对GET请求,express框架直接封装了API,可以使用req.query()获取到请求参数。

var bodyParser = require('body-parser')
app.use(bodyParser.urlencoded({extended:false}))
app.use(bodyParser.json())

9. router文件使用

  • 创建单独的router.js文件
var express = require('express')
var router = express.Router()
router.get('/',function(req,resp){
})
module.exports = router
  • 在服务文件里, 挂载路由文件
var router = require('./router')
var express = require('express')
var app = express()
app.use(router)

10. 回调函数的使用,处理异步操作

function fn(callback){
    setTimeout(function(){
        var data = 'hello'
        callback(data)
    },1000)
}
...
fn(function(data){
  console.log(data)
})

11. express 404 页面

app.use(function(req,res){
  //404处理
})

相关文章

网友评论

    本文标题:Node.js -- express

    本文链接:https://www.haomeiwen.com/subject/dozjdqtx.html