Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

nodejsで静的HTMLを起動させ、且つnodeのメソッドを叩かせる

  • HTML+JSで提供されているリファ実装
  • nodejsのインターフェイスが提供されているライブラリ

という愉快な組み合わせを実現したいという切実なアレ
後々の事を考えるとCGIが禁止されてる傾向も加味しないといけない。

しらべてみると、nodejsで静的HTMLを吐き出し、そこからnodeのメソッドを呼び出す方法があるらしい。

実際のところ

nodejs

まず本体の"foobar.js"
MVCライブラリのexpressを導入

var express = require('express');
var app = express();
app.use(express.static('html'))


app.get('/myapi', function (req, res) {
            console.log("successful call on server side");
            res.status(200).send('Hello World');
})

var server = app.listen(8080, function() {
     console.log("Listening on 8080");
})

html

htmlファイルはディレクトリを作り、そこにindex.htmlとして保存

<html>
<head>
<title>Hello World</title>
</head>
<body>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
     $.ajax({
        type: "GET",
        url: "http://127.0.0.1:8080/myapi",
        contentType: 'text/plane',
        success: function(response) {
               alert("success!");
        },
        error: function(jqXHR, textStatus, errorThrown) {
                alert("error");
        },
    });
});
</script>

<p>Hello World!</p>
</body>

動かす

$ node foobar.js

f:id:shuzo_kino:20220126195127p:plain