问题描述
我在 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 作为一项操作提供给它。你需要两个操作:
- 运行你的脚本来启动服务器
- 向它发出 HTTP 请求(例如通过浏览器、curl 或其他脚本)。
如果您想为 Express 服务器编写单元测试,那么这将进入相当复杂的领域,有很多选择。例如,请参见 this page。