nodejs接受前端传来的参数并返回数据

nodejs接受前端传来的参数并返回数据
一 、需求分析
​ 前端传来一个参数,然后用nodejs作为后端接收,并将数据返回给前端

二、实现步骤
后端用nodejs来实现,通过设置一个接口来处理数据
数据传递一定存在跨域问题,这里通过 cors 处理跨域问题
前端通过Ajax将参数传递给该接口

新建一个shell_send.js

var express = require('express');
var app = express();
var process = require('child_process');

app.all("*", function (req, res, next) {
	//设置允许跨域的域名,*代表允许任意域名跨域
	res.header("Access-Control-Allow-Origin", "*");
	//允许的header类型
	res.header("Access-Contro1-Allow-Headers", "content-type");
	//跨域允许的请求方式
	res.header("Access-Control-Allow-Methods", "DELETE,PUT,POST,GET,OPTIONS");
	if (req.method.toLowerCase() == 'options ')
		res.send(200);//让options尝试请求快速结束else
	next();
})

app.get('/api', function (req, res) {
    res.send('OK');
    console.log(req.query.a);
    process.exec(`/bin/sh send.sh true "@${req.query.a}"`,function (error, stdout, stderr) {
        if (error !== null) {
            console.log('exec error: ' + error);
        }
    });
})
 
var server = app.listen(8083, function () {
    var host = server.address().address
    var port = server.address().port
})

建立一个 send.html 文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>通知</title>
</head>
<body>
    <textarea name="aaa" id="aa" cols="30" rows="10"></textarea>
    <button>点击发送</button>
</body>
</html>
<script>
    let a = document.getElementById("aa");
    let btn =  document.querySelector("button");
    
    //点击按钮发起Ajax请求,并将textarea中的内容作为参数传递
    btn.onclick = function(){
        let xhr = new XMLHttpRequest();
        xhr.open("get","http://10.0.0.203:8083/api?a="+a.value);
        xhr.send();
        xhr.onload = function(){
            console.log(xhr.responseText);
        }
    }
</script>

五、运行

  1. 在node中运行 shell_send.js 文件,运行命令为 node shell_send.js
  2. 打开 send.html 文件,写入内容test123,点击发送按钮
  3. 在控制台可以看到得到,node中会收到发送的信息

猜你喜欢

转载自blog.csdn.net/leonnew/article/details/124803009