我正在经历this answer,然后看到了以下代码行:
var port = normalizePort(process.env.PORT || '4300');
为什么不
var port = (process.env.PORT || '4300');
此博客有一个解释:
normalizePort(val)函数只是将端口标准化为数字,字符串或false。
我还是不明白。然后,我检查什么是归一化here。我有个主意,但我还是不明白。
normalizePort()函数的作用是什么?
如果不使用它会发生什么?
(它的作用示例确实可以帮助我理解)谢谢。
答案 0 :(得分:1)
来自Express Generator的source:
function normalizePort(val) {
var port = parseInt(val, 10);
if (isNaN(port)) {
// named pipe
return val;
}
if (port >= 0) {
// port number
return port;
}
return false;
}
如果您是在代码上提供值的人,则不需要此功能。
答案 1 :(得分:1)
normalizePort()
的作用如下:
/**
* 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;
}
在大多数情况下,您基本上希望端口为数字而不是字符串。但是在某些情况下,您可能希望传递非数字字符串,例如命名管道,套接字等。这只会将解析为数字的字符串转换为数字,而不再包含常规字符串。
答案 2 :(得分:1)
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;
}
说明:
此功能是安全护栏,可确保提供的端口为number
,如果不是数字,则为string
,如果有其他设置,则为false。
如果您要自己为环境变量提供端口,并确保始终通过一些配置参数来确保端口号是一个数字,那么您实际上不需要normalizePort
函数。问题:
为什么不
var port =(process.env.PORT ||'4300');
答案 3 :(得分:0)