以下のコードのように
htmlからフォーム送信する内容に公開鍵暗号を設定しようと思い
node.jsで公開鍵をつける関数を作り
module.exportsしています。
その自作したモジュールをフロントエンドで使いたいと思い
browselifyをnpmからインストールし
$ browselify crypt.js > bundle.js
としてディレクトリ内にbundle.jsが作成されました。
これでフロントエンドでrequireが使えると思ったら
Uncaught ReferenceError: require is not defined
というエラーがクライアントコンソールに出てしまいます。
ネットに書いてある通り<script src="bundle.js"></script>
としているので、何がダメなのか分かりません。
html
1<!DOCTYPE html>
2<html lang="ja">
3<head>
4 <meta charset="utf-8">
5 <title>socket.io</title>
6</head>
7<body>
8 <h1>ログイン画面</h1>
9 <h2>名前とパスワードを入力してください</h2>
10 <form name="myid">
11 <input type="text" name="name">
12 <input type="number" name="password">
13 <input type="submit" value="送信">
14 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js">
15 </script>
16
17 <script src="http://localhost:3000/socket.io/socket.io.js"></script>
18
19<script src="bundle.js"></script>
20<script>
21 let cryp = require("crypt") ;
22 let name = $(`input[name="name"]`).val() ;
23 let pass = $(`input[name="password"]`).val() ;
24 let cryp_name = cryp.cip(name) ;
25 let cryp_pass = cryp.cip(pass) ;
26
27 let socket = io.connect();
28 $(`form[name="myid"]`).submit(function(e){
29 console.log("c:"+cryp_name) ;
30 socket.emit("emit_data",{
31 name : cryp_name,
32 password : cryp_pass
33 });
34 e.preventDefault();
35}) ;
36 </script>
37 </body>
38 </html>
39
↓crypt.js
js
1let crypto = require("crypto");
2
3 //let text="aiueo";
4 let key="key" ;
5// 暗号化するテキスト text
6// 暗号化キー pass
7
8let cip = function(text){
9 // 暗号化
10 let cipher = crypto.createCipher("aes192", key) ;
11 cipher.update(text, "utf8", "hex") ;
12 let cipheredText = cipher.final("hex") ;
13
14 console.log("暗号化(AES192) :") ;
15 console.log(cipheredText) ;
16 return cipheredText ;
17}
18
19let decip = function(text){
20 // 復号
21 let decipher = crypto.createDecipher("aes192", key) ;
22 decipher.update(text, "hex", "utf8") ;
23 let deciphered = decipher.final("utf8") ;
24
25 console.log("復号化(AES192) : ") ;
26 console.log(decipherd) ;
27 return deciphered ;
28}
29
30let cryp= function(text){
31 cip(text) ;
32 decip(text) ;
33}
34module.exports = cryp ;
35