Node.jsのjavascript関数を、あるサーバーから別のサーバーへのURLのパラメーターとして渡したいとします。それは私がコードを評価するjavascript関数eval()
を使用しますが、これは問題を引き起こすことが示唆された他の質問にAcccordingURLでjavascript関数を渡すには?
let f = function(){
return "Returned Value Here";
}
axios({url: '/', method: 'POST', data: {something: "foo", bar: f}})
.then((response)=>{console.log(response)})
.catch((reason){console.log(reason)})
:私は、データを送信するためにaxiosのNPMパッケージを使用しています、ここではコードのサンプルです。
まず、受信側で関数を渡して評価しません。そして、私は機能を得るために評価する場合でも、それは(
let bar = eval('function baz(){console.log("Test");}')
バーは、関数の参照ではない例えば
を参照することはできませんという名前の関数を(私は無名関数を渡したい)だろうbarは未定義です)、typeof baz()
を使用した場合、戻り値はSTRINGです。
URLに関数を渡すにはどうすればよいですか?
心のPOSTリクエストしてくださいそれは強く、そのようでeval
の使用を落胆のバイナリ
関数は、関数宣言の「ソースコード」を返す 'のtoString()'メソッドを有します。 –
さて、次は何ですか?私はコードを "()"に分割し、関数ビルダーなどを使ってコードを改造することを考えていました。あなたのご提案は? – omarwaleed
ええ、それは行く方法だと思います。関数の本体だけを取り除き、 'Function()'コンストラクタを使って関数を再作成するための文字列操作/正規表現を行うことができます。引数を渡すのはちょっと難しいはずです。しかし、IMOでは、サーバーから "ビヘイビア"を渡すのは素晴らしいことではありません。あなたは、明確に定義された振る舞いを持ち、データだけを前後に渡すようにサーバーを設計します。 –