作成 2012.12.26
更新 2012.12.26
Node.js の eval で文字列のスクリプトを取り込む
ファイルを読み込んで実行するサンプル
Ubuntu 12.10 + Node.js 0.6.19 で実行
コード
test1.js
var a = 10;
test2.js
function b(c){
  return ++c;
}
test3.js (意図的にエラーを発生させるコード)
if(a==1){
test_eval.js (実行本体)
var fs = require('fs');
fs.readFile('test1.js','utf8',function(err,data){
  if(err) throw err;
  eval(data);
  console.log(a);
});
fs.readFile('test2.js','utf8',function(err,data){
  if(err) throw err;
  eval(data);
  var i=1;
  console.log(b(i));
});
fs.readFile('test3.js','utf8',function(err,data){
  if(err) throw err;
  try{
    eval(data);
    var i=1;
    console.log(b(i));
  }catch(e){
    console.log('Error: '+e.message);
  }
});
実行結果
2行目はeval関数内で宣言された変数がeval外でも使用可能であることを示している。
3行目はeval関数内で宣言された関数がeval外でも使用可能であることを示している。
4行目はeval関数内の問題をtry-catch文で封じ込めることができることを示している。
$ nodejs test_eval.js
10
2
Error: Unexpected end of input
タグ: Node.js

©2004-2017 UPKEN IPv4