如何使用 URL 中的查询字符串在 PhpStorm 中运行 Node.js 应用程序?

问题描述

我在 PHPStorm 中有一个 Node.js 项目,当我单击“运行”命令时,它运行 index.js 文件就好了,但现在我需要使用 URL 中的查询字符串运行它(例如 index.js?q=query ) 并使用 Express 中的 req.query 之类的东西获取查询字符串参数。问题是我是 PHPStorm 的新手,无法弄清楚如何使用 URL 中的参数运行脚本。

到目前为止,我只看到了运行 index.js 文件的选项,但没有看到运行 index.js?q=query 的选项。通常我只会在浏览器中加载脚本,但这违背了使用无头浏览器的目的,它需要我将应用程序从 PHPStorm 项目文件复制到 XAMPP 中的目录。

如果我运行像 node index.js 这样的命令,它工作正常,但如果我将其更改为 node index.js?q=query,我会收到一条错误消息,提示错误:找不到模块”

我也不确定我是否使用了正确的语法来通过 Express 访问查询参数。

const express = require('express')
const exp = express();
const url = exp.req.query.url;
const keyword = exp.req.query.q;
const source = exp.req.query.source;

解决方法

通常我只会在浏览器中加载脚本

虽然 JavaScript 编程语言最初是一种客户端语言,但它是一种通用用途的语言。

如果您使用 express 模块,那么它替换您的网络服务器和其他服务器端语言。它不能在浏览器中运行。

(请注意,在您的示例代码中,您从未启动 Express 服务器。请参阅 Express 文档中的 the Hello World example)。

您无法运行脚本并将 URL 作为一项操作提供给它。你需要两个操作:

  1. 运行你的脚本来启动服务器
  2. 向它发出 HTTP 请求(例如通过浏览器、curl 或其他脚本)。

如果您想为 Express 服务器编写单元测试,那么这将进入相当复杂的领域,有很多选择。例如,请参见 this page

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...