var path = 'public/uploads/file.txt',
buffer = new Buffer("some content\n");
fs.open(path, 'w', function(err, fd) {
if (err) {
throw 'error opening file: ' + err;
}
fs.write(fd, buffer, 0, buffer.length, null, function(err) {
if (err) throw 'error writing file: ' + err;
fs.close(fd, function() {
console.log('file written');
})
});
});
fs.open(filepath, 'r', function(err, fd) {
fs.fstat(fd, function(err, stats) {
var bufferSize=stats.size,
chunkSize=512,
buffer=new Buffer(bufferSize),
bytesRead = 0;
while (bytesRead < bufferSize) {
if ((bytesRead + chunkSize) > bufferSize) {
chunkSize = (bufferSize - bytesRead);
}
fs.read(fd, buffer, bytesRead, chunkSize, bytesRead);
bytesRead += chunkSize;
}
console.log(buffer.toString('utf8', 0, bufferSize));
fs.close(fd);
});
});
// Convert a binary buffer into a "binary" encoded string.
function binaryEncode(buffer) {
var string = "";
for (var i = 0, l = buffer.length; i < l; i++) {
string += String.fromCharCode(buffer[i]);
}
return string
}
// Convert a "binary" encoded string into a binary buffer.
function binaryDecode(string) {
var length = string.length;
var buffer = new Buffer(length);
for (var i = 0; i < length; i++) {
buffer[i] = string.charCodeAt(i);
}
}
client.on('stream', function(stream, meta){
var bufs = [];
stream.on('data', function(data){
bufs.push(data);
});
stream.on('end', function(){
var buf = binaryEncode(Buffer.concat(bufs));
fs.writeFile(__dirname + "/tmp/"+meta.frame+".dat", buf, "binary", function(err) {
if(err) {
console.log(err);
} else {
console.log("The file was saved!");
}
});
});
}
// Linux
...
"scripts": {
"build": "export NODE_ENV=production webpack --config ./webpack.prod.config.js --progress --colors",
"start": "node ./app.js"
},
...
// Windows
...
"scripts": {
"build": "set NODE_ENV=production webpack --config ./webpack.prod.config.js --progress --colors",
"start": "node ./app.js"
},
...
router.route('/:user')
.get(function (request, response) {
var userName = req.params.user;
userService.findUserByName(userName)
.then(onUserSuccess, function (err) {
errorHandle(err, reponse);
})
.then(onProviderSuccess, function (err) {
errorHandle(err, reponse);
});
});
function errorHandle(err, reponse) {
return reponse.status(200).json({
error: false
});
}
$ git add .
$ git commit -m "Commit"
$ git push origin master
/*
Есть модель Пользователи (Users)
Есть модель Цвета (Colors)
Есть модель Статусы (Statuses)
Есть модель Отзывы (Reviews).
Каждый отзыв может иметь несколько статусов, связь - models.Reviews.belongsToMany(models.Statuses, {through: 'reviews_statuses'});
*/
var statuses = [1,3,5]; // - статусы с идентификатором 1, 3 и 5
var description = "text"; // - текст, которые содержится в Reviews.description
var colors = [2,4]; // - цвета с идентификаторами 2 и 4,
var user = 1; // - идентификатор пользователя
Reviews.findAll({
where: {
description: {
$like: description
}
},
include: [{
model: Statuses,
attributes: ['id'],
where: {
reviews_statuses: {
$in: statuses
}
}
},
{
model: Colors,
attributes: ['id'],
where: {
color_id: {
$in: colors
}
}
},
{
model: Users,
attributes: ['id'],
where: {
id: user
}
}]
});
# обновляемся
sudo apt-get update
# ставим нужные пакеты
sudo apt-get install build-essential libssl-dev
# ставим nvm
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.1/install.sh | bash
source ~/.profile
# смотрим список доступных версий ноды
nvm ls-remote
# ставим нужную
nvm install <version>