• express 写接口


    实例下载:百度云盘免密码


    (): 指注释


    一、准备工作

    1.安装express
    npm install express -g
    npm install express-generator -g

    2.初始化项目
    express APIServer(项目名称)
    cd APIServer && npm install

    二、启动服务器
    npm start
    启动完成后终端将输出 node ./bin/www
    在浏览器中访问 http://localhost:3000/

    三、基本使用
    定义一个路由的基本格式为:
    app.METHOD(PATH, HANDLER)

    想要实现一个获取用户信息接口该怎么写呢?(获取url参数 依赖于url模块)
    /routers/user.js
    function User() {
    this.name;
    this.city;
    this.age;
    }
    module.exports = User;

    /routers/users.js
    var User = require('./user');
    var URL = require('url');
    router.get('/getUserInfo', function(req, res, next) {
    var user = new User();
    var params = URL.parse(req.url, true).query;
    if(params.id == '1') {
    user.name = "ligh";
    user.age = "1";
    user.city = "北京市";
    }else{
    user.name = "SPTING";
    user.age = "1";
    user.city = "杭州市";
    }
    var response = {status:1,data:user};
    res.send(JSON.stringify(response));
    });

    调用方式(可在浏览器打开)
    http://localhost:3000/users/getUserInfo?id=1
    http://localhost:3000/users/getUserInfo?id=2

    四、Post请求额外处理
    1.引用body-parser中间件
    var bodyParser = require('body-parser')
    app.use(bodyParser.json());
    app.use(bodyParser.urlencoded({ extended: false }));
    2.允许跨域
    app.use(function(req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
    next();
    });


    实例:修改/app.js 和 /routes/all.js两个文件
    /app.js
    var express = require('express');
    var path = require('path');
    var favicon = require('serve-favicon');
    var logger = require('morgan');
    var cookieParser = require('cookie-parser');
    var bodyParser = require('body-parser');
    
    var app = require('./routes/all');
    
    
    /*
    var index = require('./routes/index');
    var users = require('./routes/users');
    var app = express();
    app.use('/', index);
    app.use('/users', users);
    var login = require('./routes/login');
    app.use('/login', login);
    */
    
    
    
    
    // view engine setup
    app.set('views', path.join(__dirname, 'views'));
    app.set('view engine', 'jade');
    
    // uncomment after placing your favicon in /public
    //app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
    app.use(logger('dev'));
    app.use(bodyParser.json());
    app.use(bodyParser.urlencoded({ extended: false }));
    app.use(cookieParser());
    app.use(express.static(path.join(__dirname, 'public')));
    // catch 404 and forward to error handler
    app.use(function(req, res, next) {
      var err = new Error('Not Found');
      err.status = 404;
      next(err);
    });
    
    // error handler
    app.use(function(err, req, res, next) {
      // set locals, only providing error in development
      res.locals.message = err.message;
      res.locals.error = req.app.get('env') === 'development' ? err : {};
    
      // render the error page
      res.status(err.status || 500);
      res.render('error');
    });
    
    module.exports = app;
    

      

    /routes/all.js
    var express = require('express');
    var router = express.Router();
    var bodyParser = require('body-parser')
    var app = express();
    var URL = require('url');
    
    app.use(function(req, res, next) {
        res.header("Access-Control-Allow-Origin", "*");
        res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
        next();
    });
    app.use(bodyParser.json());
    app.use(bodyParser.urlencoded({ extended: false }));
    
    router.get('/', function(req, res, next) {
        res.render('index', { title: 'Express' });
    });
    
    router.post('/login', function(req, res, next) {
    
        var params = req.body;
    
        var user = {}
        user.u = params.username
        var response = {status:1,data:user};
        res.send(JSON.stringify(response));
    
    });
    
    router.get('/login', function(req, res, next) {
    
        var params = URL.parse(req.url, true).query;
    
        console.log(params)
    
        var user = {}
        user.u = params.username
    
        var response = {status:2,data:user};
        res.send(JSON.stringify(response));
    
    });
    
    router.get('/users', function(req, res, next) {
        res.send('respond with a resource');
    });
    
    app.use('/', router)
    
    module.exports = app;
    

      

    /package.json
    {
      "name": "apiserver",
      "version": "0.0.0",
      "private": true,
      "scripts": {
        "start": "node ./bin/www"
      },
      "dependencies": {
        "cookie-parser": "~1.4.3",
        "debug": "~2.6.9",
        "express": "~4.15.5",
        "jade": "~1.11.0",
        "morgan": "~1.9.0",
        "serve-favicon": "~2.4.5"
      },
      "devDependencies": {
        "body-parser": "^1.18.2",
        "url": "^0.11.0"
      }
    }
    

      



  • 相关阅读:
    【复习】数据库维护-索引语法
    C# 以管理员身份运行WinForm程序
    Postgresql死锁处理
    401 Not Authorized For MSDEPLOY‏ (msdeployAgentService)
    GIT使用指南
    redis使用指南
    nginx使用指南
    DB2日常维护常用命令
    AIX常用命令总结
    C语言+嵌入式SQL+DB2开发经验总结
  • 原文地址:https://www.cnblogs.com/iloveyou-sky/p/8549668.html
Copyright © 2020-2023  润新知