nodejs接口联动获取req的各种类型数据,搭建可视化流程引擎平台

搭建nodejs服务

考虑跨域等性能,简易的工程化,采用express框架

接下来我们就来安装 body-parser express的中间件 body-parser
解析客户端请求的body中的内容,JSON编码处理和url编码处理
文件上传看我之前的博客内容

const express = require('express');
const bodyParser = require('body-parser');
const Aixpor = require("./options")
const app = express()
const port = 8088

app.use(bodyParser.urlencoded({
    
     extended: false }))
app.use(bodyParser.json());


//设置跨域访问
app.all("*", function(req, res, next) {
    
    
	//设置允许跨域的域名,*代表允许任意域名跨域
	res.header("Access-Control-Allow-Origin", req.headers.origin || '*');
	 // //只允许http://xxx.xx.xx/可跨
    //res.header('Access-Control-Allow-Origin', 'http://xxx.xx.xx/');
	//允许的header类型
	res.header("Access-Control-Allow-Headers", "Content-Type, Authorization, X-Requested-With");
	//跨域允许的请求方式 
	res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS");
	// 可以带cookies
	res.header("Access-Control-Allow-Credentials", true);
	if (req.method == 'OPTIONS') {
    
    
		res.sendStatus(200);
	} else {
    
    
		next();
	}
})

app.listen(port, () => {
    
    
	console.log(`Example app listening at http://localhost:${
      
      port}`)
})

创建对外开放端口,获取基础数据

GET—query

http://localhost:8080/?age=1

app.get('/', function (req, res) {
    
    
  var params = req.query
  res.send(params)
})
//{"age": "1"}

在这里插入图片描述

GET—params

http://localhost:8080/12/url

app.get('/testcommit/:id?/url', function (req, res) {
    
    
  var params = req.params
  res.send(params)
})
// {"id": "13"}
//此处的问号代表的为可选参数,非必写参数

当然也可以进行组合发送
在这里插入图片描述

POST

app.post('/post', function (req, res) {
    
    
 var params = req.body
  console.log(params)
  //{ name:"勇敢牛牛" }
})

在这里插入图片描述

联动MYSQL数据库

获取websites表的所有书

链接数据库

let mysql = require('mysql');

let connection = mysql.createConnection({
    
    
  host:"localhost",
  port:"3306",
  database:'test_1',
  user:'root',
  password:'12345678',
  
})

connection.connect();
// 导出
exports.connection = connection;

这里是test_1数据库下的websites表格式数据内容。
在这里插入图片描述

app.get('/testcommit/:id?',(req,res)=>{
    
    
    res.status(200);
    let sql = "SELECT * FROM `websites` u "
    connection.query(sql,(err,result)=>{
    
    
      if(err){
    
    
        console.log('查询出错',err);
        res.json([])
        return;
      }
      res.json(result)
    })
  })

插入

app.post('/testcommit',(req,res)=>{
    
    
    let body = req.body;
    console.log(Object.values(body));
    
    let addSql = 'INSERT INTO websites(Id,name,url,alexa,country) VALUES(0,?,?,?,?)';
    connection.query(addSql,Object.values(body),(err,result)=>{
    
    
      if(err){
    
    
        console.log('插入出错',err);
        res.status(500);
        res.json({
    
    message:"添加数据出错啦"})
        return;
      }
      res.status(200);
      res.json({
    
    message:result})
    })
  })
}

在这里插入图片描述
根据这些http的menth方法,url,path,body等等标识来判断,唯一的资源判断。进行业务逻辑处理。

扫描二维码关注公众号,回复: 15486903 查看本文章
这是MySQL插入数据成功后返回的结果字段的含义:

- `fieldCount`: 返回结果中的字段数目。
- `affectedRows`: 受影响的行数,表示成功插入的行数。
- `insertId`: 插入的记录的自增ID值。如果表定义了自增ID字段,则返回新插入行的自增ID值;否则返回0- `serverStatus`: 服务器状态标识,表示执行插入操作后的服务器状态。
- `warningCount`: 警告数目,表示在执行插入操作期间发出的警告数量。
- `message`: 服务器返回的消息或错误信息。
- `protocol41`: 表示服务器是否使用的是MySQL 4.1+协议。
- `changedRows`: 发生更改的行数,对于插入操作,由于是新增数据,所以没有更改的行,该值通常为0

这些字段提供了关于插入操作的相关信息,包括受影响的行数、自增ID值以及服务器状态等。可以根据需要使用这些字段来进行后续的处理或判断。

猜你喜欢

转载自blog.csdn.net/m0_46672781/article/details/131470101
今日推荐