https
express server läuft jetzt mit https
This commit is contained in:
86
express-server/node_modules/safe-replace/README.md
generated
vendored
Normal file
86
express-server/node_modules/safe-replace/README.md
generated
vendored
Normal file
@ -0,0 +1,86 @@
|
||||
safe-replace
|
||||
============
|
||||
|
||||
A micro-module for safely replacing a file.
|
||||
|
||||
This is intended to be generally safe even when a function that writes a file
|
||||
is accidentally called twice (as may happen with node cluster).
|
||||
|
||||
Commandline Reference
|
||||
---------------------
|
||||
|
||||
If I want to safely replace a file with a new version, I would do so like this:
|
||||
|
||||
```bash
|
||||
# create the new version
|
||||
touch keep.txt.RANDOM.tmp
|
||||
|
||||
# remove the previous backup
|
||||
rm -f keep.txt.bak
|
||||
|
||||
# move the current version to the backup
|
||||
mv keep.txt keep.txt.bak
|
||||
|
||||
# move the new version to the current
|
||||
mv keep.txt.RANDOM.tmp keep.txt
|
||||
```
|
||||
|
||||
If `keep.txt` became corrupt and I wanted to use the backup,
|
||||
I would do this:
|
||||
|
||||
```bash
|
||||
# copy the backup to the new version
|
||||
rsync keep.txt.bak keep.txt
|
||||
```
|
||||
|
||||
In Node
|
||||
-------
|
||||
|
||||
I ported that proccess to node.
|
||||
|
||||
```
|
||||
sfs.writeFileAsync
|
||||
sfs.stageAsync
|
||||
sfs.commitAsync
|
||||
sfs.revertAsync
|
||||
```
|
||||
|
||||
```js
|
||||
// default behavior is to concat (filename + '.' + rnd() + '.tmp')
|
||||
var safeReplace = require('safe-replace').create({ tmp: 'tmp', bak: 'bak' });
|
||||
|
||||
var data = new Buffer('A priceless document');
|
||||
safeReplace.writeFileAsync('keep.txt', data, 'ascii').then(function () {
|
||||
fs.readdir('.', function (nodes) {
|
||||
console.log('file system nodes', nodes);
|
||||
// keep.txt
|
||||
// keep.txt.bak
|
||||
});
|
||||
});
|
||||
|
||||
// let's say I want to write a tmp file and not commit it... weird
|
||||
safeReplace.stageAsync('keep.txt', data, 'ascii').then(function (tmpname) {
|
||||
fs.readdir('.', function (nodes) {
|
||||
console.log('file system nodes', nodes);
|
||||
// keep.txt.ac71teh8mja.tmp
|
||||
});
|
||||
});
|
||||
|
||||
// let's say I wrote keep.txt.x7t7sq926.tmp with my own mechanism
|
||||
safeReplace.commitAsync('keep.txt.x7t7sq926.tmp', 'keep.txt').then(function () {
|
||||
fs.readdir('.', function (nodes) {
|
||||
console.log('file system nodes', nodes);
|
||||
// keep.txt
|
||||
// keep.txt.bak
|
||||
});
|
||||
});
|
||||
|
||||
// let's say I want to revert the file from the '.bak'
|
||||
safeReplace.revertAsync('keep.txt').then(function () {
|
||||
fs.readdir('.', function (nodes) {
|
||||
console.log('file system nodes', nodes);
|
||||
// keep.txt
|
||||
// keep.txt.bak
|
||||
});
|
||||
});
|
||||
```
|
Reference in New Issue
Block a user