express模拟接口

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 {

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

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏蓝天

ZooKeeper-3.4.6分布式安装指南

介绍ZooKeeper-3.4.6版本的分布式安装,力求细致,提供精确的安装指导。本文的安装环境是64位的SuSE 10.1 Linux,也适用于ZooKe...

1201
来自专栏小白安全

关于YUNUCMSv1.0.6 任意文件删除与配置文件写shell-freebuf漏斗社区发布

任意文件删除漏洞 0×00 相关环境 源码信息:YUNUCMSv1.0.6 问题文件: \YUNUCMSv1.0.6\sta...

4159
来自专栏小狼的世界

在Centos 5.2下编译安装LAMP

首先使用Virtualbox安装一台CentOS 5.2的虚拟机,网络连接采用 Host-only Adapter,这样主客机之间可以互相访问,但是客机不能够上...

972
来自专栏Java帮帮-微信公众号-技术文章全总结

Quartz调度源码分析【面试+工作】

Quartz内部提供的调度类是QuartzScheduler,而QuartzScheduler会委托QuartzSchedulerThread去实时调度;当调度...

1002
来自专栏喵了个咪的博客空间

Otter-入门篇2(Manager安装配置)

Otter-入门篇2(Manager安装配置) ? 前言 上一节已经简单介绍了Otter的基本信息,本节我们就来开准备搭建一个我们自己的Otter环境,因为一个...

35111
来自专栏腾讯云容器服务团队的专栏

kubernetes 中 kafka 和 zookeeper 有状态集群服务部署实践 (二)

在上文中,已经介绍了如何基于 StatefulSet(PetSet) + Persistent Volume 搭建 kafka 和zookeeper 服务。本文...

2.4K1
来自专栏Java技术分享圈

杨老师课堂之Nginx学习之反向代理

502
来自专栏IT笔记

Nginx学习之反向代理

配置静态网站 server { listen 80; server_name localhost; ...

3616
来自专栏西安-晁州

nodejs设置服务端允许跨域

//设置跨域访问 app.all('*', function(req, res, next) { res.header("Access-Control-...

2180
来自专栏友弟技术工作室

Python虚拟环境

本教程将引导你完成安装和使用 Python 包。 它将向你展示如何安装和使用必要的工具,并就最佳做法做出强烈推荐。请记住, Python 用于许多不同的目的。准...

60715

扫码关注云+社区