express.json({extended: false}) 中参数的含义

ElM*_*sas 8 javascript node.js express

我正在使用 express 来设置 API,我遇到了这行代码: app.use(express.json( { extended: false } ));

我看过 express 的文档,但是我没有找到这个方法,是文档缺失还是我遗漏了什么?

jfr*_*d00 6

答案来自于查看实际的 Express 和主体解析器代码......

如果您查看此处express.json()该方法的 Express 代码,您会发现它是从 body-parser 模块直接传递该方法。.json()

 // from express.js
 exports.json = bodyParser.json;
Run Code Online (Sandbox Code Playgroud)

因此,如果您随后查看 body-parser 文档,就会发现没有任何extended中间件选项body-parser.json()

正如您所发现的,该extended选项已记录在body-parser.urlencoded()中间件中。但是,由于这与中间件方法不同.json(),因此这段代码似乎被错误地使用了extended中间件的选项.json()

如果您查看中间件的代码body-parser.json()extended,您将发现代码中根本没有对该选项的引用。

因此,它似乎是一个在您显示的代码中错误传递的选项,随后被 express/body-parser json 中间件忽略。

  • @MiguelLuís - 是的,开源的美妙之处在于你总是可以查看代码本身并得到答案。 (2认同)