簡體   English   中英

如何隱藏nodejs中的矩錯誤?

[英]How can I hide moment errors in nodejs?

我對node和javascript都還很陌生,所以如果這是一個很累的問題,我深表歉意,但是到目前為止,我在研究中發現的解決方案對我而言並不奏效。

我有以下函數檢查日期字符串(從用戶作為命令行參數接收)是否有效:

var checkDate = (d) => {
    if (isNaN(d) && moment(d).isValid()) {
        return moment(d);
    } else if (!isNaN(d)) {
        return moment(parseInt(d, 10));
    } else {
        console.error(`Error! ${d} is not a valid date string.`);
        process.exit(1);
    };
};

問題是,如果字符串不是有效日期, moment(d).isValid()將引發錯誤。 我不希望看到此錯誤,因為它實際上沒有多大用處,而且無論如何我都將自己丟在其他地方。

有沒有一種方法可以抑制moment().isValid()函數引發的錯誤?

這是一個問題moment ,將拋出一個棄用警告時所提供的價值是不可識別RFC2822或ISO格式。

為避免警告,請創建后備功能:

const moment = require('moment');

moment.createFromInputFallback = function (config) {
    config._d = new Date(NaN);
}

const checkDate = (d) => {
    if (isNaN(d) && moment(d).isValid()) {
        return moment(d);
    } else if (!isNaN(d)) {
        return moment(parseInt(d, 10));
    } else {
        console.error(`Error! ${d} is not a valid date string.`)
        process.exit(1);
    };
};

或者,您可以直接通過以下方式取消警告:

moment.suppressDeprecationWarnings = true;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM