Skip to content

Instantly share code, notes, and snippets.

@shizuka-na-kazushi
shizuka-na-kazushi / ftp-client.js
Created January 17, 2021 03:29
Nodejsのnode-ftpクライアントモジュールを使ったftpクライアントのサンプル
var readline = require('readline');
var Client = require('ftp');
var fs = require('fs');
const { exec } = require('child_process');
var ready = false;
var c = new Client();
c.on('ready', function() {
ready = true;
});
@shizuka-na-kazushi
shizuka-na-kazushi / rec.js
Created October 24, 2020 02:53
naudiodonで録音する
var fs = require('fs');
var portAudio = require('naudiodon');
// デバイスのオープン
var ai = new portAudio.AudioIO({
inOptions: {
channelCount: 1,
sampleFormat: portAudio.SampleFormat16Bit,
sampleRate: 44100,
deviceId: 6, // ここは環境によって書き換える必要あり
@shizuka-na-kazushi
shizuka-na-kazushi / fs_sample_main2.js
Created September 20, 2020 00:39
Readable.read()をProxyオブジェクトでトラップする
var fs = require('fs');
var doSomethingWithTheStream = require('./dosomething');
// readable streamはcreateReadStream関数がインスタンス化する
var readable = fs.createReadStream('image.jpg');
var totalBytes = 0;
// readableのメンバー関数read()をProxyで置き換え
readable.read = new Proxy(readable.read, {
@shizuka-na-kazushi
shizuka-na-kazushi / dosomething.js
Created September 20, 2020 00:23
Readable streamを使って、「何か」をする関数の本体
// readableを使って「何か」をする関数の本体
module.exports = function doSomethingWithTheStream(readable) {
return new Promise(function(resolve, reject){
var count = 0;
readable.on('readable', () => {
// 読み取り
var data;
while (data = readable.read()) {
// ここで読み取った部分的なデータ(chunk)を処理する...
@shizuka-na-kazushi
shizuka-na-kazushi / fs_sample_main.js
Last active September 20, 2020 00:14
fsのcreateReadStreamを使って「何か」をする関数を呼び出す
var fs = require('fs');
var doSomethingWithTheStream = require('./dosomething');
// readable streamはcreateReadStream関数がインスタンス化する
var readable = fs.createReadStream('image.jpg');
// 「何か」をする関数にオブジェクトを渡す
doSomethingWithTheStream(readable).then(() => {
console.log('All done!');
});
@shizuka-na-kazushi
shizuka-na-kazushi / func_proxy.js
Created September 19, 2020 23:56
関数呼び出しをapplyハンドラとProxyで置き換える
// 元の関数を定義
function showtime(season) {
console.log(`トムとジェリーのシーズン ${season}をみる`);
}
// 元の関数を呼び出し
showtime(1);
showtime(2);
showtime(3);
@shizuka-na-kazushi
shizuka-na-kazushi / dog_proxy.js
Created September 19, 2020 23:14
dog.name プロパティを別の値に置き換えてしまう Proxy !
// トムという名前を持った犬オブジェクトを生成
var dog = {name: 'トム', age: 1};
// 1. 普通に dog を使う
console.log(`${dog.name}は、${dog.age} 歳の犬です`);
// Proxyに渡すhandler
var handler = {
get: (target, prop, receiver) => {
@shizuka-na-kazushi
shizuka-na-kazushi / console_log_proxy.js
Created September 19, 2020 22:22
console.logを Proxy オブジェクトで書き換える
// console.logを置き換えて、
// 出力の先頭に '(xxxxxxx)'のように現在の時間を表示する
console.log = new Proxy(console.log, {
apply: function(target, thisArg, argList) {
var n = Date.now();
argList[0] = '(' + n + ') ' + argList[0];
return target.apply(thisArg, argList);
}
})