小编Vik*_*eev的帖子

Nginx - 编码(规范化)URI的一部分

我有nginx location指令,目的是从proxy_pass指令的URI"删除"本地化前缀.

例如,要使URI http://example.com/en/lalala使用proxy_pass http://example.com/lalala

location ~ '^/(?<locale>[\w]{2})(/(?<rest>.*))?$' {
        ...
        proxy_pass http://example/$rest;
        ...
}
Run Code Online (Sandbox Code Playgroud)

这样,rest变量将在传递给proxy_pass directeve时被解码.这似乎是一种预期的行为.

问题是我的URI包含%20从客户端传递的编码空间

http://example.com/lala%20lala
Run Code Online (Sandbox Code Playgroud)

nginx将URI解码为

http://example.com/lala lala
Run Code Online (Sandbox Code Playgroud)

我可以在我的error.log中看到它.

问题是 - 是否有可能rest以某种方式使用编码变量,因为它是从客户端传递的?如果我做了一些完全错误的事情,请以正确的方式提出建议.

谢谢.

nginx

9
推荐指数
2
解决办法
1万
查看次数

使用空子文档集合保存Mongoose文档会导致重复键错误

我有两个猫鼬模式:

var productSchema = new Schema({
    name: { type: String, required: true, unique: true },
    ...
});
...
var categorySchema = new Schema({
    ...
    products: [ProductSchema]
});
Run Code Online (Sandbox Code Playgroud)

当我尝试保存类别时

var categories = [
    {..., products: []},
    {..., products: []}
];
Run Code Online (Sandbox Code Playgroud)

甚至没有产品

var categories = [
    {...},
    {...}
];
Run Code Online (Sandbox Code Playgroud)

我收到了错误

{ [MongoError: E11000 duplicate key error index: test.categories.$products.name_1  dup      key: { : undefined }]
name: 'MongoError',
err: 'E11000 duplicate key error index: test.categories.$products.name_1  dup key: { : undefined }',
 code: 11000,
 n: …
Run Code Online (Sandbox Code Playgroud)

javascript mongoose mongodb node.js

8
推荐指数
1
解决办法
1685
查看次数

标签 统计

javascript ×1

mongodb ×1

mongoose ×1

nginx ×1

node.js ×1