• node.js入门学习(六)--express


    1、官网:http://expressjs.com/

          中文:http://www.expressjs.com.cn/

    2、HelloWorld

      1)mkdir node-express-demo

      2)cd . ode-express-demo

      3)新建app.js文件

      4)npm init -y  : 会以app.js为入口文件,创建package.json

      5)npm install express --save  : 本地安装express并将其保存到依赖列表中,会新建package-lock.json文件,package.json也会添加依赖

      package.json

    {
      "name": "node-express-demo",
      "version": "1.0.0",
      "description": "",
      "main": "app.js",
      "scripts": {
        "test": "echo "Error: no test specified" && exit 1"
      },
      "keywords": [],
      "author": "",
      "license": "ISC",
      "dependencies": {
        "express": "^4.17.1"
      }
    }

      6)app.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!'))

      7)node .app.js

    3、res.send()

      app.js

    const express = require('express')
    const app = express()
    
    app.get('/', (req, res) => res.send('Hello World!'))
    
    app.get('/index', function (req, res) {
        res.send("中文会乱码吗?");
    });
    
    app.get('/json', function (req, res) {
        var jsonObj = {name:"张三"};
        res.send(jsonObj);
    });
    
    app.listen(3000, () => console.log('Example app listening on port 3000!'))

      

      访问http://127.0.0.1:3000/index,结果

      访问http://127.0.0.1:3000/json,结果

     4、app.get、app.use和app.all注册路由

      app.get('/add', fn):请求方法必须是get,请求uri必须是"/add"

      app.use():请求方法任意,请求uri是“/add/...”这样的

      app.all():请求方法任意,请求uri === “/add”

    5、通过req.params获取路由中的参数

    const express = require('express')
    const app = express()
    
    app.get('/book/:year/:month/:day', function(req, res) {
        res.send(req.params);
    });
    
    app.listen(3000, () => console.log('Example app listening on port 3000!'))

      访问http://localhost:3000/book/2019/07/08,结果:

    6、静态资源

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

      请求:http://127.0.0.1:3000/public/images/1.jpg

      匹配"/public",并认为"/public"为虚拟路径,然后将/"images/1.jpg" 与 path.join(__dirname, 'public') 拼接成路径,以此路径去找静态资源

    7、Demo

      

      app.js

    var express = require('express');
    var config = require('./config.js');
    var router = require('./router.js');
    
    var app = express();
    
    // 注册路由
    app.use('/', router);
    
    // app.use('/public', express.static(path.join(__dirname)));
    app.listen(config.port, () => console.log('Example app listening on port ' + config.port + '!'))

      config.js

    // 配置信息
    module.exports = {
        port : 3001
    };

      router.js

    // 路由模块
    
    // 1、创建一个router对象(既是一个对象,也是一个函数)
    var path = require('path');
    var express = require('express');
    var handler = require('./handler.js');
    var router = express.Router();
    
    // 2、通过router对象设置(挂载)路由
    router.get('/index', handler.index);
    router.get('/list', handler.list);
    router.use('/public', express.static(path.join(__dirname, 'public')));
    
    // 3、返回router对象
    module.exports = router;

      handler.js

    // 业务处理模块
    var path = require('path');
    
    module.exports.index = index; // 显示主页
    module.exports.list = list; // 显示list页面
    
    function index(req, res) {
        // res.send('index页面');
        res.sendFile(path.join(__dirname, 'pages' , 'index.html'));
    }
    
    function list(req, res) {
        res.send('list页面');
    }

    另外可以参考:https://blog.csdn.net/sleepwalker_1992/article/details/83417714

  • 相关阅读:
    css3动画之1--animation小例子
    炎炎夏日,走入美妙的前端设计案例
    模拟腾讯、携程、百度音乐 移动端图片切换第一版
    仿QQ空间长图效果简易版--母亲节感恩
    001-搭建框架
    javascript事件绑定1-模拟jquery可爱的东西
    图片尺寸
    mvc3结合spring.net-依赖注入
    *创建索引初步
    Lucene的分词_中文分词器介绍
  • 原文地址:https://www.cnblogs.com/xy-ouyang/p/11154255.html
Copyright © 2020-2023  润新知