ファイルを読み込んで実行するサンプル
Ubuntu 12.10 + Node.js 0.6.19 で実行
作成 2012.12.26
更新 2012.12.26
更新 2012.12.26
Node.js の eval で文字列のスクリプトを取り込む
コード
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文で封じ込めることができることを示している。
3行目はeval関数内で宣言された関数がeval外でも使用可能であることを示している。
4行目はeval関数内の問題をtry-catch文で封じ込めることができることを示している。
$ nodejs test_eval.js 10 2 Error: Unexpected end of input
タグ: Node.js