问题标签 [nginx-njs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 具有多个条件的 Javascript 正则表达式
我正在使用 Nginx njs 模块进行一些 url 修改。
我的用例是返回给定 uri 的重定向 uri。
URI 将如下所示:
我的正则表达式匹配上述 URI 如下 -
/books/(.*)|/books$
表达式的第一部分/books/(.*)
是匹配以下 URI:
表达式的第二部分/books$
是匹配以下 URI:
我的目的地配置如下/ebooks/$1
:这样上面的 URI 将被转换为:
Javascript代码:
上面的代码适用于以下 URI:
但对于 URI /books
,它应该返回/ebooks/
。但它在 . 末尾附加了一些不可打印的特殊字符/ebooks/
。
我认为它正在尝试$1
用一些特殊字符替换。
如何避免在最后添加特殊字符?
node.js - 如何将 Nginx NJS 与本机 nodejs 模块和 webpack 一起使用?
有一个指南https://nginx.org/en/docs/njs/node_modules.html指南描述了如何将“本机”nodejs 模块与 njs 一起使用。
我按照指南进行操作,直到我不明白粗体字的含义:
请注意,在此示例中生成的代码未包装到函数中
,我们不需要显式调用它。结果在“dist”目录中:$ cat dist/wp_out.js code.js > njs_dns_bundle.js
让我们在文件末尾调用我们的代码: <<<--- HERE
var b = set_buffer(global.dns);
控制台.log(b);并使用节点执行它:
$节点./njs_dns_bundle_final.js
问题是我如何在 njs_dns_bundle_final.js 中包含/要求/导入 webpack 生成的 njs_dns_bundle.js,这是让我们在文件末尾调用我们的代码的名称,因为没有它我会收到错误:
我的代码.js:
我的 njs_dns_bundle_final.js:
我认为节点运行良好?!:
NJS 不会:
谢谢
nginx - nginx - njs - ngx_http_auth_request_module 如何向用户返回 302?
我正在使用 njs ngx_http_auth_request_module。
我有这样的js函数;
文档说“如果子请求返回 2xx 响应代码,则允许访问。如果它返回 401 或 403,则访问被拒绝并带有相应的错误代码。子请求返回的任何其他响应代码都被视为错误。” http://nginx.org/en/docs/http/ngx_http_auth_request_module.html
如果 subsequest 进入“else”块,我需要向用户返回 302。
有没有办法做到这一点?如果我设置 r.return(302),它会在浏览器中显示错误页面,如文档所述。
编辑:我的 nginx.conf
http://my-specific-url 返回
- 200,如果 jwt cookie 有效
- 302(带返回位置),如果 jwt cookie 无效