ブログ

割とコンピュータよりの情報をお届けします。

Visual Studio CodeでNode.jsのアプリをデバッグ

先の記事の続きでプログラム作成を続けていた。するとlaunch.jsonの設定にまだまだ深いところがあったので追加の内容を調べていた。
process.stdout.writeを使ったところでlaunch.jsonに新たな設定が必要になった。

今回デバッグするアプリケーションは
2つのファイルで構成

スクリプトの内容は後に回すとして
まずlaunch.jsonでconfigurationsに追加が必要なのは
"console": "integratedTerminal",
であった。

これを追加しておかないとprocess.stdout.writeで出力した内容がデバッグの表示に現れない。
なぜこうなるのかは いまひとつよくわかっていない。

一つ目はserv.js

const GetNtp = require('./GetNtp')

var getNtp = new GetNtp();

var before = new Date();
var task = new Promise(function(resolve, reject) {
  getNtp.getNetworkTime('ntp.nict.jp', 123, resolve, reject)
})

task.then(function(value) {
  var after = new Date()
  console.log('Computer tick: ' + (before.valueOf() + after.valueOf()) / 2 + ' ms')
  process.stdout.write('ntp.nict.jp tick: ' + value.valueOf() + ' ms\n')
  process.stdout.write('Difference: ' + ((before.valueOf() + after.valueOf()) / 2 - value.valueOf()) + ' ms')
  process.stdout.write(' ±: ' + (after.valueOf() - before.valueOf()) + ' ms\n')
})

2つ目のファイルGetNtp.jsは以下のようになっている


var GetNtp = function() {
  this.ntpClient = require('ntp-client');
}

GetNtp.prototype.getNetworkTime = function(uri, port, resolve, reject) {
  this.ntpClient.getNetworkTime(uri, port, function(err, date) {
    if(err) {
        console.error(err)
        if (typeof reject !== "undefined")
          reject()
        return
    }
    if (typeof resolve !== "undefined")
      resolve(date)
  });
}

module.exports = GetNtp

その前にこのサンプルではntp-clientを使って時刻を取得し自PCの時刻と差をms出力をしている。

作業フォルダでnpm init -yを実行してnpm install -D ntp-clientを実行しておく必要があることは言うまでもない。

2018/07/14 コンピュータ   TakeMe
< 前の記事     一覧へ     後の記事 >

コメント送信フォーム


※ Eメールは公開されません
Loading...
 画像の文字を入力してください