我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

nodejs的代码世界里面,express是非常常见的提供www服务的基础代码。很多代码都是以它作为基础的,比如create-react-app,在本文中,苏南大叔以express为基础,做了个简单的api范例服务。

苏南大叔:nodejs代码,express接口服务,如何接收参数?如何跨域? - express-hero
nodejs代码,express接口服务,如何接收参数?如何跨域?(图6-1)

大家好,这里是苏南大叔的“程序如此灵动”博客,这里介绍苏南大叔和计算机代码的故事。express接收参数,返回数据,同时解决跨域的问题。这就是本文要解决的几个问题。测试环境:win10node@16.14.2npm@8.3.0express@4.18.1cors@2.8.5

安装基本代码

安装express,安装命令如下:

npm i express --save

苏南大叔:nodejs代码,express接口服务,如何接收参数?如何跨域? - express-github
nodejs代码,express接口服务,如何接收参数?如何跨域?(图6-2)

基本代码

var express = require("express")
var app = express();
app.get("/hi",function (req,resp) {
    resp.send("hi express!");
});
app.listen(3222,function () {
    console.log("server start! http://localhost:3222/ ");
});

这里开启的端口是3222,就响应一个请求:3222/hi

苏南大叔:nodejs代码,express接口服务,如何接收参数?如何跨域? - 基本代码
nodejs代码,express接口服务,如何接收参数?如何跨域?(图6-3)

get接收参数响应json

这里输出json的时候,使用

app.get("/hello", function (req, res) {
    console.log(req.query); //获取get请求的参数
    data = req.query;
    res.send(JSON.stringify(data));
});

苏南大叔:nodejs代码,express接口服务,如何接收参数?如何跨域? - get请求
nodejs代码,express接口服务,如何接收参数?如何跨域?(图6-4)

解析url中的参数

假如请求的链接是:

/hola?to=sunan

那么,获取to的办法就是:req.query["to"]

app.get("/hola", function (req, res) {
    console.log(req.query["to"]); //获取get请求的参数to
});

post接收参数相应json

对于post请求来说,还需要一个body-parser来解析body的参数。但是,body-parser不用额外安装,应该是express的一部分,只需要直接引用即可。

var express = require("express")
var app = express();
app.listen(3222,function () {
    console.log("server start! http://localhost:3222/");
});

// 下面的代码才是重点
const bodyParser = require('body-parser')
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
    extended: false
}));
app.post('/hola', (req, res) => {
    console.log(req.body); //获取post请求体的body参数
    data = req.body;
    res.send(JSON.stringify(data));
})

苏南大叔:nodejs代码,express接口服务,如何接收参数?如何跨域? - post请求
nodejs代码,express接口服务,如何接收参数?如何跨域?(图6-5)

所以,解析post方法体内的参数的方式是(前提是开启了bodyParser这个中间件):

req.body["参数名"]

跨域设置

这个部分看你是否有跨域的需求,如果有,就安装cors,安装命令如下:

npm i cors --save

使用方式:

var cors = require('cors');
app.use(cors());

苏南大叔:nodejs代码,express接口服务,如何接收参数?如何跨域? - cors跨域
nodejs代码,express接口服务,如何接收参数?如何跨域?(图6-6)

这样设置之后,其它被允许的网站(*)就可以顺利照常使用对应的API接口了。当然,这么设置的话,其实也有些问题,就是允许的网站可能过于宽泛了。所以,对这个要求比较严格的同学,可以再去看看官方文档说明:

上述文档里面,有更详细的跨域参数可以控制。由于时间限制,这里就不做更多的解释了。

相关连接

综述

在本文中,苏南大叔主要介绍的就是基于express搭建api服务器的基本操作,可以接收get或者post参数,并输出json格式字符串。如果您需要跨域设置,也可以使用cors

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   cors    node