上手1025メモ
4485 ワード
端末とnodejsのioインタラクション(ioはinputとoutputで、入出力)
端末とioのインタラクションはnodejsオフィシャルモジュールを導入する必要があります.
ReadlineはNode.jsで標準入出力を実現するパッケージの良いモジュールです.このモジュールを通じて、データストリームを逐行で読み取ることができます.require(readline)を使用してモジュールを参照することができます.
Readlineのインスタンスを作成
readline.create Interfaceはreadlineのインターフェースインスタンスを作成します.Objectタイプのパラメータを受け入れて、以下のいくつかの値を伝えることができます. input-傍受するための読み取り可能なストリーム(必須) output-readlineに書き込むための書き込み可能なストリーム(必須). completter-Tab自動補完のためのオプション関数です.(非常用) terminal-inputとoutputストリームがTTYのように扱われることを望むなら、パラメータtrueを伝達し、ANSI/VT 100を介して符号化する.デフォルトでは、isTTYがoutputストリーム上で実行されているかどうかをチェックします.(非常用) がトリガされる. 簡単なreadlineの事例イベント:'ライン' イベント:'pause' イベント:「reume」 イベント:'close'
転送のパラメータの読み込みを担当します.
端末とioのインタラクションはnodejsオフィシャルモジュールを導入する必要があります.
ReadlineはNode.jsで標準入出力を実現するパッケージの良いモジュールです.このモジュールを通じて、データストリームを逐行で読み取ることができます.require(readline)を使用してモジュールを参照することができます.
Readlineのインスタンスを作成
readline.create Interfaceはreadlineのインターフェースインスタンスを作成します.Objectタイプのパラメータを受け入れて、以下のいくつかの値を伝えることができます.
var readline = require(‘readline’);
var rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
インターフェースrl.close()
は、インターフェース・インスタンス(Interface instance)をオフにし、入力出力ストリームの制御を放棄する.closeイベントがトリガされます.rl.pause()
は、readlineの入力ストリームを一時停止し、必要があれば後で回復することができます.rl.prompt([preserveCursor])
は、ユーザー入力のためにreadlineを用意し、既存のset Proptオプションを新たなラインに置いて、ユーザーに新しいところから入力を開始させる.preserveCurerをtrueに設定して、カーソル位置が0に再設定されることを防止します.rl.question(query, callback)
は、予め指定されたqueryを提示してから、ユーザが応答した後、指定されたcalbackをトリガする.指定されたqueryがユーザに表示されると、ユーザの応答が入力されると、指定されたcalback rl.resume()
readlineの入力ストリームを復元します.rl.setPrompt(prompt)
には、例えばコマンドラインでnodeを実行すると、表示されます.rl.write(data[, key])
var readline = require('readline');
var rl = readline.createInterface(process.stdin,process.stdout);
// question
rl.question('what is you name? ',function(answer){
console.log('my name is ' + answer);
// close,
rl.close();
});
// close
rl.on('close',function(){
console.log(' ');
process.exit(0);
});
同様のコマンドラインの入力var readline = require('readline');
var rl = readline.createInterface(process.stdin,process.stdout);
rl.setPrompt('please>');
rl.prompt();
rl.on('line',(line)=>{
switch(line.trim()){
case 'pause':
rl.pause();
break;
case 'copy':
console.log(' ');
break;
case 'hello':
rl.write("Write");
console.log('world!');
break;
default:
console.log(' ');
break;
}
rl.prompt();
});
rl.on('close',function(){
console.log(' ');
process.exit(0);
});
rl.on('pause', function() {
console.log('Readline .');
});
Readline事件の傍受と処理function (line) {}
は、inputストリームが1つを受けたときにトリガされ、通常、ユーザが車をノックしたり、戻ったりするときに受信される.これはユーザーの入力を傍受する利器です.rl.on('line', (cmd) => {
console.log(`You just typed: ${cmd}`);
});
function () {}
は、いつでも入力ストリームが一時停止されるとトリガされる.入力ストリームが一時停止されていない場合も、SIGCONTが受信されるとトリガされる.rl.on('pause', function() {
console.log('Readline .');
});
function () {}
は、いつでも入力ストリームが再起動されるとトリガされる.rl.on('resume', function() {
console.log('Readline .');
});
function () {}
は、close()が呼び出されたときにトリガされる.inputストリームが「終了」イベントを受信するとトリガされる.トリガされると、Interfaceインスタンス「終了」とみなされるべきである.例えば、inputストリームが^Dを受信すると、それぞれEOTとみなされる.inputストリームが一つの^Cを受信すると、SIGINTモニタがなくても、これをトリガする.それぞれSIGINTと呼ばれる.rl.on('close',function(){
console.log(' ');
process.exit(0);
});
ブラウザとnodejs端末が相互作用します.var http = require("http");// http
var url = require("url");// url
var fs = require("fs");// fs
var ip = "192.168.238.129";// IP
var port =3000;//
var server = new http.Server();//
server.listen(port,ip);//
server.on('request',(req,res) =>{//on
var pathname =url.parse(req.url).pathname;//
switch (pathname) {
case '/f': // =‘/f’
fs.readFile('./jsq.html',(err,content) =>{
res.writeHead(200,{"Content-type":"text/html;charset='utf-8'"});
res.write(content);
res.end();
});
break;
default:
}
});
querystringモジュール転送のパラメータの読み込みを担当します.
var qs =require("querystring");