在 Nodejs 中 normalizePort() 函数有什么作用?

Yul*_*ale 11 normalize node.js express

我正在浏览这个答案然后我看到了这行代码:

var port = normalizePort(process.env.PORT || '4300');
Run Code Online (Sandbox Code Playgroud)

为什么不

var port = (process.env.PORT || '4300');
Run Code Online (Sandbox Code Playgroud)

从这个博客有一个解释:

normalizePort(val) 函数只是将端口规范化为数字、字符串或 false。

我还是不明白。然后我查看这里的规范化是什么。我有一些想法,但我还是不明白。

normalizePort() 函数的目的是什么?

如果我们不使用它会发生什么?

(它所做的一个例子会真正帮助我理解)谢谢。

ait*_*han 12

normalizePort函数是在express-generator中引入的,它是 Express 团队的样板。

从生成器代码:

/**
 * Normalize a port into a number, string, or false.
 */
function normalizePort(val) {
  var port = parseInt(val, 10);

  if (isNaN(port)) {
    // named pipe
    return val;
  }

  if (port >= 0) {
    // port number
    return port;
  }

  return false;
}
Run Code Online (Sandbox Code Playgroud)

说明: 此功能是一个安全护栏,以确保提供的端口为number,如果不是数字,则为 a string,如果有任何其他内容,请将其设置为 false。

normalizePort如果您自己将端口提供给环境变量并确保端口始终通过某种配置成为一个数字,那么您真的不需要函数,这就是您问题的答案:

为什么不

var port = (process.env.PORT || '4300');

  • 为什么该评论说“命名管道”? (2认同)