JavaScript
- Use Module List
- Setup Manual for Nuxt's Project
- Vue/Nuxt
- Only-Vue
- Vue Router
- Vuetify
- Browser Storage
- axios
- node.js
- Sequelize
- OpenLayers
- Webpack
ファイル書き込み時の注意点
直ちにファイルに書き込んでほしいときはfs.fsync
を呼び出すこと。
ファイルの書き込み関数を使った後すぐに実際のファイルに保存されるわけではないので、すぐに書き込んでほしいときはfs.fsyncSyncを使う。
すぐに書き込まれないのはパフォーマンス上の都合で、これはOSレベルの話でほかの言語でも同じことである。
fs.fsync
がファイル情報も書き出し、fs.fdatasync
はデータのみをファイルに書き込む。
そのため、純粋にデータのみを書き込んでほしいときはfs.fdatasync
を使うといい。
以下、参考記事から抜粋
fs.fsync
は非同期的に書き込むので、すぐに書き込んでほしいときはfs.fsyncSync()
を使うこと。
const fs = require('fs')
fs.open('./fsync_test.txt', 'w', (err, fd) => {
fs.write(fd, 'fsync() test\n', () => {
// ここがポイント!!
fs.fsyncSync(fd);
response.writeHead(200, {'Content-Type': 'text/plain'})
response.end('Write success\n');
fs.close(fd, ()=>{});
})
})
TypeScript
ES6でimport/exportがJSに導入されたが、TypeScriptのimport/exportとは下の感じで対応しているそうだ。
Difference between 'export' and 'export default' in JavaScript? [duplicate]
// Three different export styles
export foo;
export default foo;
export = foo;
// The three matching import styles
import {foo} from 'blah';
import foo from 'blah';
import * as foo from 'blah';
は下のように(雰囲気)変換されるみたい。
exports.foo = foo;
exports['default'] = foo;
module.exports = foo;
var foo = require('blah').foo;
var foo = require('blah')['default'];
var foo = require('blah');