前提・実現したいこと
htmlで作成したフォーム(index.html)から入力した値を、
Node.jsで記述したPDF作成処理(createPdf.js)に渡したいと考えています。
(※js内でWebサーバーをたてています)
発生している問題・エラーメッセージ
普通に記述しただけでは「ReferenceError: require is not defined」というエラーが出るため、エラーの出ない方法を探しています。
Browserifyを使用したところrequireのエラーは消えましたが、
「TypeError: http.createServer is not a function」というエラーが出ます。
該当のソースコード
長い為、一部抜粋して掲載いたします。
html
1<!DOCTYPE html> 2<html lang="ja"> 3 4<head> 5 <meta http-equiv="content-type" charset="utf-8"> 6 <title>testページ</title> 7 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 8 <script type="text/javascript" src="./bundle.js"></script> 9</head> 10<body> 11 <form id="form1" name="form1"> 12 <input type="text" name="q4_2_other" size="50"> 13 <input type="submit" name="btn" id="btn" value="送 信" onclick="createPdf()"> 14 </form> 15 <script> 16 $('#form1').submit(function(event) { 17 var formData = $('form1').serialize(); 18 // ここでsubmitをキャンセルします。 19 event.preventDefault(); 20 // Ajax処理 21 $.ajax({ 22 url: 'http://localhost:8080/', 23 type:'POST', 24 dataType: 'json', 25 data: formData, 26 timeout:10000 27 }); 28 }); 29 </script> 30</body> 31</html>
javaScript
1var PDFDocument = require('pdfkit'); 2var fs = require('fs'); 3var http = require("http"), 4 url = require("url"), 5 path = require("path"), 6 port = process.argv[2] || 8080; 7 8http.createServer(function(request, response) { 9 var Response = { 10 "200":function(file, filename){ 11 var extname = path.extname(filename); 12 var header = { 13 "Access-Control-Allow-Origin":"*", 14 "Pragma": "no-cache", 15 "Cache-Control" : "no-cache" 16 } 17 18 response.writeHead(200, header); 19 response.write(file, "binary"); 20 response.end(); 21 }, 22 "404":function(){ 23 response.writeHead(404, {"Content-Type": "text/plain"}); 24 response.write("404 Not Found\n"); 25 response.end(); 26 27 }, 28 "500":function(err){ 29 response.writeHead(500, {"Content-Type": "text/plain"}); 30 response.write(err + "\n"); 31 response.end(); 32 33 } 34 } 35 36 37 var uri = url.parse(request.url).pathname 38 , filename = path.join(process.cwd(), uri); 39 40 fs.exists(filename, function(exists){ 41 console.log(filename+" "+exists); 42 if (!exists) { Response["404"](); return ; } 43 if (fs.statSync(filename).isDirectory()) { filename += './index.html'; } 44 45 fs.readFile(filename, "binary", function(err, file){ 46 if (err) { Response["500"](err); return ; } 47 Response["200"](file, filename); 48 }); 49 50 }); 51 52 53}).listen(parseInt(port, 10)); 54 55console.log("Server running at http://localhost:" + port ); 56function createPdf(){ 57 58// 以降、pdf作成処理 59 60} 61
補足情報(FW/ツールのバージョンなど)
browserify:ver.16.2.2
Node.js:v7.2.1
Webサーバーを立てた状態でrequireを使用できる方法をご存知の方、
ご教授宜しくお願い致します。