Skip to content

Instantly share code, notes, and snippets.

@tangxinfa
tangxinfa / mkdir_p.c
Last active July 11, 2022 13:19 — forked from JonathonReinhart/SConstruct
mkdir -p implemented in C
#include <errno.h>
#include <libgen.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/stat.h>
int mkdir_p(char* path) {
int len = strlen(path);
if (len == 0) {
@tangxinfa
tangxinfa / mysql2_pool_leak.js
Created April 18, 2017 06:41
node.js mysql2 pool will leak connection if error occured
"use strict";
const mysql2 = require('mysql2'),
co = require('co');
const pool = mysql2.createPoolPromise({
host: "127.0.0.1",
port: 3306,
user: 'root',
password: "",
@tangxinfa
tangxinfa / MDFRedis.js
Last active November 7, 2016 08:06
Connect redis with Minimum Distance First(MDF) algorithm.
var Redis = require('ioredis'),
merge = require('utils-merge'),
_ = require('lodash'),
os = require('os'),
net = require('net'),
util = require('util'),
EventEmitter = require('events').EventEmitter;
/**
@tangxinfa
tangxinfa / ioredis_local.js
Last active September 28, 2016 03:49
ioredis-sentinel-prefer-local
var Redis = require('ioredis'),
utils = require('ioredis/lib/utils'),
_ = require('lodash'),
net = require('net'),
assert = require('assert');
/**
* A SentinelConnector.prototype.resolveSlave replacement, prefer local slave.
*
@tangxinfa
tangxinfa / co-readline.js
Created May 27, 2016 02:50
Wrap readline's event based interface to co friendly
var co = require('co'),
assert = require('assert');
fs = require('fs'),
readline = require('readline');
module.exports = function (filename) {
var instance = {
lines: [],
closed: false,
@tangxinfa
tangxinfa / delete_after_download.js
Last active February 13, 2023 03:56
how to delete file after download in node.js
var fs = require('fs'),
express = require('express'),
app = express();
function deleteFile (file) {
fs.unlink(file, function (err) {
if (err) {
console.error(err.toString());
} else {
console.warn(file + ' deleted');