blog

node.js write テキスト フロントエンドとバックエンド間のシンプルなインタラクション

1.同期非同期作成ファイル書き込みテキスト作成フォルダ1.1同期非同期書き込み1.2指定したフォルダの存在を判断する1.3同期非同期読み取りファイル3.ファイル書き込み2.expressモジュールとフ...

Feb 14, 2020 · 4 min. read
シェア

同期式 非同期式 ファイルの作成 テキストの書き込み フォルダの作成

1.var fs = require('fs')// fs file ファイルシステム システムファイル オペレーティングシステム // Synchrouons // Asyhchrouons // 同期:実行するタスクが複数ある場合、前のタスクが実行されるまで次のタスクを開くことはできない。 // 非同期: 前のタスクが終了していなくても、次のタスクが引き続き実行できる。

同期非同期書き込み

// パラメーター1:パス // パラメータ2:書き込むデータ // パラメータ 3: コールバック関数 Error エラー //同期書き込み fs.writeFileSync('./バトルクリプト.txt',' ',function(err){ if(err){ console.log(err) }else{ console.log(' ') } }) //非同期書き込み fs.writeFile('決闘大陸(DLC)',' ',function(err){ if(err){ console.log(err) }else{ console.log(' ') } })

exists は、指定されたフォルダが存在するかどうかを判定します。

fs.exists('フォルダ名','現在のフォルダが存在するかどうか Boolean型') fs.mkdirSync('public')//共通フォルダ fs.exists('public',function(isExists){ //存在しない場合 if(!isExists){ //フォルダを作成する fs.mkdirSync('public'); } })

ファイルの同期非同期読み込み

//同期読み込み var data =fs.readFileSync('./バトルクリプト.txt') console.log(data.toString()); //非同期読み込み fs.readFile('./決闘大陸(DLC)',function(err,data){ if(err){ console.log(err) }else{ console.log(data.toString()) } })
 パラメータを同期して読み込む
 1.ファイルパス return ファイルの内容 toString() 文字列に変換する
 パラメータを非同期で読み込む
 1.ファイルパス
 2.コールバック関数
 2.1 err 
 2.2ファイルの内容

ファイルを書き込みます。

// そのようなファイルがなければ、自動的に作成され、書き込まれる。 // このファイルがあれば、中身を直接上書きできる。 // fs.writeFile('決闘大陸(DLC)','100,000BeastsSoul1111',function(err){ // if(err){ // console.log(err) // }else{ // console.log(' ' ) // } // }) //新しいデータを追加する fs.appendFile('./決闘大陸(DLC)',' ',function(err){ if(err){ console.log(err) }else{ console.log(' ') } })
 fs.appendFile() 
 1.ファイルパス
 2.テキストを書き込む
 3.err;

エクスプレスモジュール、フロントエンドとバックエンドのインタラクション

npm init プロジェクトの初期化

main属性の値はサーバーの名前である。

フロントエンドのファイル作成、バックエンドのajaxリクエスト

 <button onclick="sendPost()"> </button>
 <script>
 function sendPost() {
 var xhr = new XMLHttpRequest();
 xhr.open('POST', './postInfo');
 xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
 xhr.onreadystatechange=function () {
 if (xhr.readyState == 0) {
 console.log('openメソッドは呼び出されたが、sendは呼び出されていない。')
 }
 if (xhr.readyState == 1) {
 console.log('sendメソッドが呼び出されたが、サーバーは応答していない。')
 }
 if (xhr.readyState == 2) {
 console.log('サーバーが応答を開始し、データを返す準備ができた。')
 }
 if (xhr.readyState == 3) {
 console.log('サーバーがデータを返した')
 }
 if (xhr.readyState == 4) {
 console.log('サーバーはすべてのデータを返す')
 console.log(xhr.response)
 }
 }
 xhr.send('age=17&fond= ')
 }
 
 </script>

、サーバーserver.jsを作成し、特にpackage.jsonを見て主な属性を確認します。

モジュール npm install express module ここで express モジュールをダウンロードします。

server.jsサーバーを書き込みます。

var express = require('express') //リクエストを送信する post リクエストなので、body-parser モジュールも必要。 // bodyボディパーサーを解析する // postリクエストのリクエストボディパラメータを解析する。 var bodyParser = require('body-parser') //expressオブジェクトを取得する var app = express()//httpモジュールのアプリに相当する。.createServer(); //フロントエンドのコードフォルダを取得する // 現在のアプリケーションに静的リソースフォルダを使用させる public app.use(express.static('public')) // url encoded エンコード デコード デコード // bodyparserを使用して、エンコードされたurlを処理する 拡張url拡張を許可するかどうかを拡張する //extendedurlの拡張子を許可するかどうか 文字列の場合はfalse 配列など他の型の場合はtrueにする。; app.use(bodyParser.urlencoded({extended:false})) //フロントエンドのリクエストを取得する app.post('postInfo',function(req,res){ //フロントエンドのパラメータを解析する var age = req.body.age; var fond = req.body.fond; //フロントエンドに送信する res.send(' '+age+' '+',次のように入力する。'+fond) }) //リッスンするポートを設定する app.listen('8080',function(){ console.log('8080// を開始する。......') })
server.jsサーバーを書き込む。 1.expressモジュールを作成する var express = require('express') 2.body-parserパーサーモジュールを作成する。 var bodyParser = require('body-parser') 3.expressオブジェクトを作成 これでサーバーを作成することが理解できた; var app = express()//httpモジュールのアプリに相当する。.createServer(); 4//フロントエンドのコードフォルダを取得する。 app.use(express.static('public')) 5.bodyparserを使って、エンコードされたurlを処理する。 extendedurlの拡張子を許可するかどうか 文字列の場合はfalse 配列など他の型の場合はtrueにする。; app.use(bodyParser.urlencoded({extended:false})) 6.//フロントエンドのリクエストを取得する サーバーへのパラメータ・パス; req フロントエンドのパラメータが指定され、res データ・レスポンス・オブジェクトが指定される。 req.body.ageパラメータを解析する res.send() をフロントエンドの戻り値に書き込む app.post('postInfo',function(req,res){ //フロントエンドのパラメータを解析する var age = req.body.age; var fond = req.body.fond; //フロントエンドに送信する res.send(' '+age+' '+',次のように入力する。'+fond) }) //リッスンするポートを設定する app.listen('8080',function(){ console.log('8080// を開始する。......') })
Read next

httpsの決定版

スロースタートは、一定期間トラフィックがなかった接続に適用することができ、接続をスローダウンさせ、速度を急速に低下させます。

Feb 13, 2020 · 2 min read