express模拟接口

时间:2022-05-06
本文章向大家介绍express模拟接口,主要内容包括1、node环境安装、2、express安装、3、body-parser安装、4、demo.js、5、启动模拟接口、6、调用地址、7、本机调试问题、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。

1、node环境安装

2、express安装

npm install express --save

3、body-parser安装

npm install body-parser

4、demo.js

//引入express模块
var express = require('express');
//引入内部中间件,主要是解析post请求
var bodyParser = require('body-parser');

var app = express();

//设置跨域访问(这个只是测试时使用,上线的话尽量在后台处理跨域问题)
app.all('*', function (req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "X-Requested-With");
    res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS");
    res.header("X-Powered-By", ' 3.2.1')
    res.header("Content-Type", "application/json;charset=utf-8");
    next();
});

// 创建 application/x-www-form-urlencoded 编码解析
var parser = bodyParser.urlencoded({extended: false});
/******************************** 模拟接口 开始 ******************************************************/
//用户查询接口【不支持ContentEncoding=UTF-8】
app.post('/api/user/query', parser, function (request, response) {
    console.log(request.query);
    //获取URL参数
    var data = request.query;
    // 输出 JSON 格式
    const user_query = {
        "id": data.id,
        "name": data.name
    };
    console.log(user_query);
    response.json(user_query);
});
/******************************** 模拟接口 结束 ******************************************************/

var server = app.listen(9092, function () {
    var host = server.address().address;
    var port = server.address().port;
    console.log("address: %s, port: %d", host, port);
});

5、启动模拟接口

node demo.js

6、调用地址

http://192.168.xxx.xxx:9092/api/user/query?id=user123&name=测试

7、本机调试问题

Failed to load http://192.168.xxx.xxx:9092/api/user/query?id=user123&name=%E6%B5%8B%E8%AF%95: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://192.168.xxx.xxx:8090' is therefore not allowed access.

本机前台调试因为端口不同,会报跨域的错误。可以加下面的代码测试

//设置跨域访问(这个只是测试时使用,上线的话尽量在后台处理跨域问题)
app.all('*', function (req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "X-Requested-With");
    res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS");
    res.header("X-Powered-By", ' 3.2.1')
    res.header("Content-Type", "application/json;charset=utf-8");
    next();
});

后台使用springMVC的@CrossOrigin注解可以解决跨域问题。

package com.yonyou.scf.demo.controller;

@RestController
@Api(value = "测试接口", description = "测试环境使用")
@CrossOrigin
public class demoController {