前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >express模拟接口

express模拟接口

原创
作者头像
meteorzx
发布2018-04-03 10:35:40
9926
发布2018-04-03 10:35:40
举报
文章被收录于专栏:meteorzx

1、node环境安装

2、express安装

代码语言:javascript
复制
npm install express --save

3、body-parser安装

代码语言:javascript
复制
npm install body-parser

4、demo.js

代码语言:javascript
复制
//引入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、启动模拟接口

代码语言:javascript
复制
node demo.js

6、调用地址

代码语言:javascript
复制
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.

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

代码语言:javascript
复制
//设置跨域访问(这个只是测试时使用,上线的话尽量在后台处理跨域问题)
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注解可以解决跨域问题。

代码语言:javascript
复制
package com.yonyou.scf.demo.controller;

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、node环境安装
  • 2、express安装
  • 3、body-parser安装
  • 4、demo.js
  • 5、启动模拟接口
  • 6、调用地址
  • 7、本机调试问题
相关产品与服务
消息队列 TDMQ
消息队列 TDMQ (Tencent Distributed Message Queue)是腾讯基于 Apache Pulsar 自研的一个云原生消息中间件系列,其中包含兼容Pulsar、RabbitMQ、RocketMQ 等协议的消息队列子产品,得益于其底层计算与存储分离的架构,TDMQ 具备良好的弹性伸缩以及故障恢复能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档