zoukankan      html  css  js  c++  java
  • 搭建express服务器

    express是一个基于Node.js的极简的web应用程序开发框架。

    首先为应用程序创建一个package.js文件

    npm init -y

    在项目目录添加index.js文件

    const express = require('express')
    const app = express()
    
    app.get('/', (req, res) => res.send('Hello World!'))
    
    app.listen(3000, () => console.log('Example app listening on port 3000!'))

    启动

    node index.js

    然后在浏览器中访问http://localhost:3000/就可以看到返回的'Hello wORLD!'文本了。

    路由指定了如何对对应的URI请求进行响应,例如下面的各种请求

    app.get('/', function (req, res) {
      res.send('Hello World!')
    })
    
    app.post('/', function (req, res) {
      res.send('Got a POST request')
    })
    
    app.put('/user', function (req, res) {
      res.send('Got a PUT request at /user')
    })
    
    app.delete('/user', function (req, res) {
      res.send('Got a DELETE request at /user')
    })

    静态文件

    为了提供CSS文件、图片、js文件之类的静态资源,可以使用express.static内置中间件函数。

    express.static(root, [options])

    下面代码对外开放了public目录下的文件

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

    然后就可以直接访问public目录下面的文件了,Express 在静态目录查找文件,因此,存放静态文件的目录名不会出现在 URL 中。

    http://localhost:3000/images/kitten.jpg
    http://localhost:3000/css/style.css
    http://localhost:3000/js/app.js
    http://localhost:3000/images/bg.png
    http://localhost:3000/hello.html

    可以添加多个静态资源目录

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

    可以提供一个虚拟的访问路径,路劲真实并不存在,但访问时需要加上。

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

    访问

    http://localhost:3000/static/images/kitten.jpg
    http://localhost:3000/static/css/style.css
    http://localhost:3000/static/js/app.js
    http://localhost:3000/static/images/bg.png
    http://localhost:3000/static/hello.html

    也可以提供一个绝对路径

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

    除了get、post等方法设置路由外,还可以使用express.route()方法对同一个路径创建一个链式的路由回调

    app.route('/book')
      .get(function (req, res) {
        res.send('Get a random book')
      })
      .post(function (req, res) {
        res.send('Add a book')
      })
      .put(function (req, res) {
        res.send('Update the book')
      })

    express.Router

    使用express.Router()可以创建一个模块化的、可装载的router处理函数。router可以作为middleware使用use加载,下面birds.js文件是一个Router模块。

    var express = require('express')
    var router = express.Router()
    
    // middleware that is specific to this router
    router.use(function timeLog (req, res, next) {
      console.log('Time: ', Date.now())
      next()
    })
    // define the home page route
    router.get('/', function (req, res) {
      res.send('Birds home page')
    })
    // define the about route
    router.get('/about', function (req, res) {
      res.send('About birds')
    })
    
    module.exports = router

    作为中间件使用router模块

    var birds = require('./birds')
    
    // ...
    
    app.use('/birds', birds)

    然后就可以使用/birds and /birds/about访问了

  • 相关阅读:
    co模块总结
    Promise总结
    webpack错误Chunk.entry was removed. Use hasRuntime()
    jquery validate用法总结
    node命令行开发
    animation总结
    formData使用总结
    vue-resource发送multipart/form-data数据
    keil中使用Astyle格式化你的代码的方法-keil4 keil5通用
    tcpip入门的网络教程汇总
  • 原文地址:https://www.cnblogs.com/ssw-men/p/11490610.html
Copyright © 2011-2022 走看看