Node.jsでハマったことまとめ
初期設定
package.jsonの作成に失敗する(Windows)
package.jsonの作成手順は以下の通りなのですが、エラーが出てpackage.jsonが作成できないことがあります。
WindowsのC:\ドライブ直下にファイルが作れないのが原因。コマンドプロンプトを管理者として実行することで回避できます。
作成失敗例
C:\>npm init
(中略)
package name: package_list
version: (1.0.0) 0.0.0
description:
entry point: (index.js)
test command:
git repository:
keywords:
author: fummimix
license: (ISC)
About to write to C:\package.json:
(中略)
Is this ok? (yes)
npm ERR! path C:\package.json
npm ERR! code EPERM
(以下略)
モジュール関連
モジュールを外部ファイルから呼び出す
node.jsで外部ファイルのJavaScriptを呼び出す - Node.js/JavaScript入門
HTTP/HTTPSリクエストを楽にやりたいので、requestモジュールを使いたいのだが……
requestモジュールを入れないと当然ながら使えないので、"npm install request"してから使いましょう。requestを使うことでGET/POSTがかなり楽にできるので入れておくと良いです。
エラー例
C:\node>node app.js
module.js:545
throw err;
^
Error: Cannot find module 'request'
(以下略)
インストール例
C:\>npm install request
npm WARN package_list@0.0.0 No description
npm WARN package_list@0.0.0 No repository field.
+ request@2.85.0
added 1 package in 1.876s
node.jsでjsonファイル読み込んだらキャッシュされて困った
常にキャッシュなしで読み込む場合は、fs.readFileSyncを使う。1
制御
特定の処理を一定間隔でやりたい
while(1) {}と自作のsleep関数で……いやいやsetIntervalが便利ですね!!2
30秒おきに特定のURLのBodyを取ってくる例
var webclient = require("request");
setInterval(function () {
webclient.get({
url: "(対象のURL)",
}, function (error, response, body) {
console.log(body);
});
}, 3000);
参考文献
- npmでnode.jsのpackageを管理する - Qiita
- 初期化処理を行う!npm initの使い方【初心者向け】
- Node.js で HTTP/HTTPS リクエスト を行う方法 - galife