Help us understand the problem. What is going on with this article?

node.js の CVSS v3 モジュールを使ってデモページを作ってみた

More than 3 years have passed since last update.

前回の続き。

cvss3 のロジックはできたので(まだ基本評価基準のみだけど),これをブラウザ上でも使えるようにする。

Web 上をあちこち回ってみたが webpack を使うのがよさげである。今回の用途にはオーバースペックではあるが,練習を兼ねて使ってみる。以下のページがとても参考になった。感謝。

spiegel-im-spiegel/cvss-demo に開発環境を置いている。以下のページで実際に動いているのを確認できる。

デモページでは [Score] ボタンを押すと Vector 情報を出力し,その Vector 情報を cvss3 で計算して Score を表示している。すべてクライアント側で動作しているのでご心配なく。

ハマりどころ

cvss3 ではオブジェクトを階層的に配置している。たとえば BaseMetrics オブジェクトを生成するには

app.js
var cvss3 = require('cvss3');
var base = new cvss3.BaseMetrics();

のように記述する。オブジェクトを階層的に配置することで Java 的な名前空間を構成している。 node.js ではこれで問題なく動作したが, webpack で JavaScript をバンドルするとうまくいかないようだ。上述のようなコードを書くと「BaseMetrics なんてコンストラクタはねーよ,バカ」(超意訳)とか怒られる。

色々試してみたが,オブジェクトを階層的に配置するのはダメらしい。なので,そこはすっぱり諦めて global 直下に並列に配置することにした。例えば上述のコードは

app.js
require('cvss3');
var base = new CVSS3_Base();

と書けば目的のオブジェクトを生成できる。もっとうまいやり方があるかも知れないが,週末も終わるし,本業が忙しくなってしばらく構ってあげられないと思うので,当面はこれで行ってみる。

spiegel-im-spiegel
職業エンジニアは無期休業中。
https://baldanders.info/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした