Supervisor是Node.js的一个程序包,它监视应用程序目录中的文件以进行修改,并在发生修改时重新加载应用程序.
此脚本将符号链接解释为常规文件并注销警告.我想分叉Supervisor,以便完全修复或者产生更具描述性的警告.
如何使用Node.js的文件系统模块来确定给定文件是否真的是符号链接?
我正在尝试编写一个使用node.js在s3上存储图像的图像服务器.上传图像工作正常,我可以使用s3浏览器客户端正确下载和查看它(我特别使用dragondisk,但我已经成功下载了其他的),但是当我用节点下载它并尝试把它写入磁盘,我无法打开文件(它说它可能已损坏或使用预览无法识别的文件格式).我正在使用amazon sdk进行节点和fs来编写文件.我知道你可以将一个可选的编码传递给fs.writeFile,但我已经尝试了所有这些并且它不起作用.我还尝试在getObject上设置putObject和ResponseContentType上的ContentType,以及在各种组合中设置ContentEncoding和ResponseContentEncoding(以及所有这些内容).结果相同.这是一些代码:
var AWS = require('aws-sdk')
, gm = require('../lib/gm')
, uuid = require('node-uui')
, fs = require('fs');
AWS.config.loadFromPath('./amazonConfig.json');
var s3 = new AWS.S3();
var bucket = 'myBucketName'; // There's other logic here to set the bucket name.
exports.upload = function(req, res) {
var id = uuid.v4();
gm.format("/path/to/some/image.jpg", function(format){
var key = req.params.dir + "/" + id + "/default." + format;
fs.readFile('/path/to/some/image.jpg', function(err, data){
if (err) { console.warn(err); }
else {
s3.client.putObject({
Bucket: bucket,
Key: key,
Body: data,
ContentType: 'image/jpeg' …Run Code Online (Sandbox Code Playgroud) 我在服务器上有一个缓存引擎,它缓存在根目录下访问的所有文件.我正在考虑使用Chokidar来查看整个目录树(递归)以进行文件更改并相应地更新缓存.但我担心如果子目录包含数十万个文件会发生什么 - Chokidar的效率如何?
我正在阅读有关Node.js文件系统的文档fs.writeFile(filename, data, [options], callback).所以我注意到我经常看到[选项],但从未用过任何东西.有人能举个例子吗?我所有的情况都没有使用这个选项.
在本地计算机上reading/writing遇到UNC路径问题nodeJs.有一次fs从我的机器读取/写入到UNC路径就好了,但现在它似乎无法读/写它.
UNC路径:
\\[machine name]\folder1\folder2\file.csv
我一段时间后升级到节点版本12,并认为可能存在网络路径错误,但没有看到任何人在线受到影响.然后我用来nvmw加载旧版本的节点,但仍然没有.
我想知道是不是因为我没有加入同一个域,但是,这不是以前的问题.我可以ping这个盒子,在Windows资源管理器中访问,远程访问.
我尝试运行我的应用程序作为我的用户,作为管理员,在凭证管理器中为网络管理员添加了一个Windows凭据.
试图改变使用许可标志r,r+,a,a+0666 ...
路径尝试
\\[machine name]\ \\?\[machine name]\ \\?\UNC\[machine name]\写错误
{
[Error: UNKNOWN, mkdir '\\[machine name]\Storage\CSV\Example.csv']
errno: -4094,
code: 'UNKNOWN',
path: '\\[machine name]\Storage\CSV\Example.csv'
}
Run Code Online (Sandbox Code Playgroud)
读错误
{
[Error: UNKNOWN, open '\\[machine name]\Storage\CSV\Example.csv']
errno: -4094,
code: 'UNKNOWN',
path: '\\[machine name]\Storage\CSV\Example.csv'
}
Run Code Online (Sandbox Code Playgroud)
我已经浏览了很多实际的fs代码,它似乎最终生成了适当的路径,但似乎没有很好的窗口用于访问UNC路径.
我希望有人可以给我一些要检查的事项或可能的原因.
我试图使用节点js读取csv文件.她是我的代码
fs.readFile(config.csvUploadPath, function read(err, data) {
if (err) {
throw err;
}
console.log(data + 'my data')
});
Run Code Online (Sandbox Code Playgroud)
安慰:
ID
D11
D33
D55
Run Code Online (Sandbox Code Playgroud)
在这里,我想获取列ID中的元素并将它们存储在数组中.我怎样才能做到这一点?谁能建议我帮忙.谢谢.我的控制器:
var partnersModel = new partners(params);
fs.readFile(config.csvUploadPath, function read(err, data) {
if (err) {
throw err;
}
dataArray = data.toString().split(/\r?\n/);
dataArray.forEach(function(v,i){
if(v !== 'DUI'){
partnersModel.dui.push(v);
}
});
});
partnersModel.save(function(error, response){
Run Code Online (Sandbox Code Playgroud) 我创建了一个简单的服务器,它使用fs模块将mp3文件流式传输到浏览器,该浏览器在html5音频元素中播放它.实际上,音频流完全正常,但是,即使我寻求的部分已经被缓冲,我也无法通过流来寻找.
var express = require('express');
var app = express();
var fs = require('fs');
app.get('/', function (req, res) {
var filePath = 'music.mp3';
var stat = fs.statSync(filePath);
res.writeHead(200, {
'Content-Type': 'audio/mpeg',
'Content-Length': stat.size,
});
var readStream = fs.createReadStream(filePath);
readStream.pipe(res);
});
Run Code Online (Sandbox Code Playgroud)
其他类似的Q&As建议添加Content-Range标头,但我找不到如何做到这一点的简单示例.其他人已经说过使用206 Partial-Content标题,但是当我这样做时,音频根本不会播放.
这是一个演示(在Windows上测试Chrome)
我使用https://graph.microsoft.com/beta/me/photo/ $ value API来获取outlook用户的个人资料图片.我得到了一个关于在rest-client中运行上述API的图像.API的内容类型是"image/jpg"
但是,在Node.js中,API的响应如下:
????\u0000\u0010JFIF\u0000\u0001\u0001\u0000\u0000\u0001\u0000\u0001\u0000\u0000??\u0000?\u0000\u0005\u0005\u0005\u0005\u0005\u0005\u0006\u0006\u0006\u0006\b\t\b\t\b\f\u000b\n\n\u000b\f\u0012\r\u000e\r\u000e\r\u0012\u001b\u0011\u0014\u0011\u0011\u0014\u0011\u001b\u0018\u001d\u0018\u0016\u0018\u001d\u0018+"\u001e\u001e"+2*(*2<66<LHLdd?\u
Run Code Online (Sandbox Code Playgroud)
我用'fs'来创建一个图像文件.代码如下:
const options = {
url: "https://graph.microsoft.com/beta/me/photo/$value",
method: 'GET',
headers: {
'Accept': 'application/json',
'Authorization': `Bearer ${locals.access_token}`,
'Content-type': 'image/jpg',
}
};
request(options, (err, res, body) => {
if(err){
reject(err);
}
console.log(res);
const fs = require('fs');
const data = new Buffer(body).toString("base64");
// const data = new Buffer(body);
fs.writeFileSync('profile.jpg', data, (err) => {
if (err) {
console.log("There was an error writing the image")
}
else {
console.log("The file is written successfully");
}
});
});
Run Code Online (Sandbox Code Playgroud)
文件写入成功,但.jpg …
我需要删除目录中除我指定名称的文件之外的所有文件。比方说:
fs.unlink('./all except specialfile.txt', (err)) => {
if (err) throw err;
console.log('file deleted!');
}
Run Code Online (Sandbox Code Playgroud) 我试图爬行几个网页来检查损坏的链接并将链接的结果写入 json 文件,但是,在第一个文件完成后,应用程序崩溃,没有弹出错误...
我使用 Puppeteer 进行爬行,使用 Bluebird 来同时运行每个链接,使用 fs 来写入文件。
我尝试过什么:
const express = require('express');
const router = express.Router();
const puppeteer = require('puppeteer');
const bluebird = require("bluebird");
const fs = require('fs');
router.get('/', function(req, res, next) {
(async () => {
// Our (multiple) URLs.
const urls = ['https://www.testing.com/allergy-test/', 'https://www.testing.com/genetic-testing/'];
const withBrowser = async (fn) => {
const browser = await puppeteer.launch();
try {
return await fn(browser);
} finally {
await browser.close();
} …Run Code Online (Sandbox Code Playgroud)