javascript - 如何在 NodeJS 中运行一个函数并将响应发送给客户端?

标签 javascript html node.js

我正在尝试为我正在执行的 HTML 项目加密一些文本,我正在使用的加密代码需要 node.js 服务器,但我似乎无法在我的原始 HTML 代码中运行该功能。我是 JavaScript 的新手,并不太了解它。

这是我想用按钮调用函数的 HTML 代码:

(按钮中的内容只是网上的一些随机内容,我认为不相关)

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>test</title>
</head>

<body>
<a href="/Files/TEST.ptf" download="meme14">
	TEST.ptf
</a>
<button onclick="
var url = require('url');
var adr = 'http://localhost:3000';
var q = url.parse(adr, true);
console.log(q.host);"
>Encrypt</button>
</body>
</html>

这里是Node.JS Server的代码,我想调用encrypt函数。

// server.js

var express = require('express');

var app = express();
 

var PORT = 3000;

app.get('/', function(req, res) {
    res.status(200).send('Hello world');
});

function encrypt() {
 var SimpleCrypto = require("simple-crypto-js").default;
 var _secretKey = "-VH5s*@yoj0JDiXQdLyKHwYvttDeoxcarpgaBm9uLZH%Vy0Xw_n0DZ3|BgE7pn%1*APiRV1L*7OlRLIuL&yqIqKw@QLPJc+r+N^dH-Wb3@Zx2TKkvtbobzFW6?Fr$^XObG4K$m$clU3m+1BVx@3O_v6sikvNWwxhVV*q4vrvr7|8qT4*JK3g!*SF-ffDE=?lU$4HuVpiYHTAmW@DNDWeJH*#orX_GY@@|=8ip8rskE0TPl-4OC+KCa2re+ND3pwp";
 var simpleCrypto1 = new SimpleCrypto(_secretKey);
 var plainText = "Hello World!";
 var cipherText = simpleCrypto1.encrypt(plainText);
 console.log("Encryption process...");
 console.log("Plain Text    : " + plainText);
 console.log("Cipher Text   : " + cipherText);
}
var router = express.Router();
app.use('/*', router);
	router.get('/call-java-app', function (req, res, next){
 	encrypt();
	res.send(cipherText);
});

encrypt();

app.listen(PORT, function() {
    console.log('Server is running on PORT:',PORT);
});

最佳答案

在您的 NodeJS 代码中,您必须创建一个路由来调用此函数并将响应发送给客户端;技术上。

希望这段代码能帮到你:

var express = require('express');
var app = express();
var PORT = 3000;
var SimpleCrypto = require("simple-crypto-js").default;

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



app.get('/', function (req, res) {
  res.status(200).send('Hello world');
});

app.get('/encrypt', function (req, res) {
  res.send(encrypt())
});


app.listen(PORT, function () {
  console.log('Server is running on PORT:', PORT);
});


function encrypt() {
  var _secretKey = "-VH5s*@yoj0JDiXQdLyKHwYvttDeoxcarpgaBm9uLZH%Vy0Xw_n0DZ3|BgE7pn%1*APiRV1L*7OlRLIuL&yqIqKw@QLPJc+r+N^dH-Wb3@Zx2TKkvtbobzFW6?Fr$^XObG4K$m$clU3m+1BVx@3O_v6sikvNWwxhVV*q4vrvr7|8qT4*JK3g!*SF-ffDE=?lU$4HuVpiYHTAmW@DNDWeJH*#orX_GY@@|=8ip8rskE0TPl-4OC+KCa2re+ND3pwp";
  var simpleCrypto1 = new SimpleCrypto(_secretKey);
  var plainText = "Hello World!";
  var cipherText = simpleCrypto1.encrypt(plainText);
  console.log("Encryption process...");
  console.log("Plain Text    : " + plainText);
  console.log("Cipher Text   : " + cipherText);
}

您必须使用 Ajax 向服务器发送请求并获得响应并显示给用户,make an Ajax request可以帮助你。

关于javascript - 如何在 NodeJS 中运行一个函数并将响应发送给客户端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58034066/

相关文章:

html - 为什么我的页眉比预期的要高?

html - Bootstrap page Overflow-x hidden,IOS页面上有一个元素还在左右滚动

javascript - JQuery 不加载通过服务获得的效果

javascript - for 循环内的 Node js Promise 总是打印 Promise { <pending> }

javascript - 如何解决通过id查找item的问题?

javascript - Async/Await 不等待响应,并返回 Promise 对象

javascript - 使用 React 获取文本而不是下拉(选择)输入的值

Javascript:将日期转换为 UTC 格式

javascript - javascripts 加载器什么时候比传统方法慢?

javascript - 将本地存储数据填充到 HTML 表?