【问题标题】:How can I run a NodeJS script whenever a webpage loads?每当网页加载时,如何运行 NodeJS 脚本?
【发布时间】:2020-07-25 12:19:12
【问题描述】:

让我尽我所能解释我的项目。我正在使用 webpack 和 deck.gl 制作一个显示地图数据的 JavaScript 应用程序/网站。地图数据来自 JSON 文件,但只有在我运行自己编写的 NodeJS 网络爬虫程序时才会附加该 JSON 数据。

两件事,我怎样才能自动化这个脚本,以便它在第一次加载网站(index.html)时运行,我将如何在我的本地主机之外的平台上托管这样的网站?

提前致谢。


修复/解决方案:

我怎样才能自动化这个脚本,以便在第一次加载网站 (index.html) 时运行它

我最终通过Express 创建了一个网络服务器并将我的代码作为函数调用(如下所示的scrape.js 文件)

const express = require('express');
const app = express();
const scrape = require('./scrape.js');

app.get('/', (req, res) => {
    scrape();
})

app.listen(3000);

我将如何在本地主机之外的平台上托管这样的网站

几乎每个主要的托管平台都允许您托管 Node 应用程序,所以我决定使用 AWS - 特别是 AWS EC2 Instance

【问题讨论】:

    标签: javascript node.js json web hosting


    【解决方案1】:

    我怎样才能自动化这个脚本,让它在第一次加载网站 (index.html) 时运行

    1. 创建一个 Web 服务器(例如使用 Express.js)
    2. 重写脚本,使其可以作为函数调用,然后在访问您主页的路由时调用它

    例如

    const yourscript = require("./yourscript.js");
    
    app.get('/', (req, res) => {
        yourscript();
        res.render('index')
    })
    

    (不是一个详尽的示例,请阅读 Express.js 文档)

    并确保通过从网络服务器请求它来加载网页(例如 http://localhost:3000/ 并且不直接从文件系统访问文件)。

    我将如何在本地主机之外的平台上托管这样的网站?

    查找专为运行 Node.js 应用程序而设计的托管服务并按照他们的说明进行操作。

    【讨论】:

    • 谢谢。当您说“重写脚本以便可以将其作为函数调用”时,这是否仅涉及将代码包装在函数中?当我尝试这个时,它会出现一个 TypeError 说“x 不是函数”
    • @devon66h — 因为我完全不知道脚本的作用,所以我不能说。
    猜你喜欢
    • 2019-03-25
    • 1970-01-01
    • 1970-01-01
    • 2014-02-03
    • 1970-01-01
    • 1970-01-01
    • 2020-11-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多