我正在嘗試badPort在另一個函式(getPort)中使用函式,module.exports如下所示:
DEFAULT_PORT = 80;
module.exports = {
badPort:
(c_port, min=80, max=90) => {
return isNaN(c_port) || !between(c_port, min, max);
},
getPort:
(c_port, min=80, max=90) => {
console.log(this.badPort(c_port));
return this.badPort(c_port) ? 80 : c_port;
},
};
但是,當我使用this.badPort(c_port)它時會引發例外:
TypeError: this.badPort is not a function
但它顯然是一個在它上面初始化的函式。
但是,如果我取出(),this.badPort總是回傳undefined。
為什么會發生這種情況,我如何才能正確使用里面的功能module.exports?是否也可以以module.exports這種方式宣告“全域變數”DEFAULT_PORT?
uj5u.com熱心網友回復:
您可以通過更改this為module.exports:
DEFAULT_PORT = 80;
module.exports = {
badPort:
(c_port, min=80, max=90) => {
return isNaN(c_port) || !between(c_port, min, max);
},
getPort:
(c_port, min=80, max=90) => {
console.log(module.exports.badPort(c_port));
return module.exports.badPort(c_port) ? 80 : c_port;
},
};
關于第二個問題......您必須重新定義您的模塊,才能在外部使用該變數,如下所示:
module.exports.DEFAULT_PORT = 80;
然后您將可以訪問它:
var mod = require('mymodule');
console.log(mod.DEFAULT_PORT);
我不知道任何其他方式。
uj5u.com熱心網友回復:
您是否嘗試過將“:”更改為“=”,例如:
DEFAULT_PORT = 80;
module.exports = {
badPort = (c_port, min=80, max=90) => {
return isNaN(c_port) || !between(c_port, min, max);
},
getPort = (c_port, min=80, max=90) => {
console.log(this.badPort(c_port));
return this.badPort(c_port) ? 80 : c_port;
},
};
uj5u.com熱心網友回復:
要從其他函式中參考badPort,您可以這樣撰寫:
DEFAULT_PORT = 80;
const badPort = (c_port, min=80, max=90) => {
return isNaN(c_port) || !between(c_port, min, max);
};
const getPort = (c_port, min=80, max=90) => {
console.log(badPort(c_port));
return badPort(c_port) ? 80 : c_port;
};
module.exports = {
badPort,
getPort
};
如果您對如何正確匯入它感到好奇,這里有一個從同一目錄中的另一個 js 檔案正確匯入的示例:
const port = require('./port.js');
console.log(port.badPort(1000));
您的默認埠可以是使用process.env https://nodejs.org/dist/latest-v8.x/docs/api/process.html的環境變數
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/438308.html
標籤:javascript 节点.js 功能
上一篇:浮點函式不回傳浮點值
下一篇:使用函式創建類屬性
