如何正确调用从 Node.JS 到 Express.JS 的函数

How to correctly call a function from Node.JS to Express.JS

我有一个完整的脚本作为解析器。该脚本是用 NodeJS 编写的,并且可以正常运行。脚本 return 是一个数据数组,并将其保存到我的电脑中。 我想从前端 运行 这个脚本,点击一个按钮。据我了解,我必须向服务器发送请求?建议对服务器使用 Express,但我仍然没有弄清楚如何从中调用第三方脚本,更不用说 return 从中调用任何数据了。 现在我想要的只是当我请求根目录“/”时我的脚本 运行 并向我发送 json 作为响应(或者例如 json 文件)

    const express = require('express')
    const runParser = require("./parser");
    const app = express()
    const port = 3000
    

    
    app.get('/', async (req, res,next) => {
      await runParser()
        next()
    })
    
    app.listen(port, () => {
        console.log(`Example app listening on port ${port}`)
    })

你只需要 Express 是这样的:

const express = require('express');
const app = express();
const runParser = require("./parser");
const port = 3000;

app.get("/", (req, res) => {
   runParser().then(results => {
      res.json(results);
   }).catch(err => {
      console.log(err);
      res.status(500).send("error");
   });
});

app.listen(port, () => {
    console.log(`Server running on port ${port}`);
});

然后,您可以通过以下任一方式访问:

http://localhost:3000

来自您的本地主机或

http://yourdomain.com:3000

在浏览器中或通过从网页 Javascript.

发出对所需 URL 的 ajax 调用

我个人不会将这种类型的 activity 放在对 / 的 GET 请求中,因为它可能会被网络爬虫、搜索引擎等攻击...

它可能属于 POST(因此爬虫不会发布它),我个人会把它放在某个路径名上,例如:

app.post("/runparser", (req, res) => {
    // put your code here
});

然后使用表单提交或 ajax 调用 URL 来触发它。