相关疑难解决方法(0)

使用Express从NodeJS Server下载文件

如何将我服务器中的文件下载到访问nodeJS服务器中页面的计算机?

我正在使用ExpressJS而且我一直在尝试这个:

app.get('/download', function(req, res){

  var file = fs.readFileSync(__dirname + '/upload-folder/dramaticpenguin.MOV', 'binary');

  res.setHeader('Content-Length', file.length);
  res.write(file, 'binary');
  res.end();
});
Run Code Online (Sandbox Code Playgroud)

但我无法获取文件名和文件类型(或扩展名).任何人都可以帮助我吗?

javascript file download node.js express

283
推荐指数
6
解决办法
33万
查看次数

如何使用API​​将图片发布到Instagram

我正在构建一个需要将用户上传的图片直接发布到Instagram上的php应用程序,但经过快速搜索后我发现API中没有这样的功能:(感觉很奇怪...因为它们应该提供一个.我我不确定是否有任何其他方式(除了Android和iOS的应用程序)使用php上传图片.如果有任何可能性,请给我任何想法.

我也读过这个,

如何使用PHP与Instagram共享链接和照片

谢谢

php instagram

97
推荐指数
7
解决办法
18万
查看次数

fs.createWriteStream不会立即创建文件?

从http函数下载了一个简单的下载(为简化省略了错误处理):

function download(url, tempFilepath, filepath, callback) {
    var tempFile = fs.createWriteStream(tempFilepath);
    http.request(url, function(res) {
        res.on('data', function(chunk) {
            tempFile.write(chunk);
        }).on('end', function() {
            tempFile.end();
            fs.renameSync(tempFile.path, filepath);
            return callback(filepath);
        })
    });
}
Run Code Online (Sandbox Code Playgroud)

但是,由于我download()异步调用了几十次,它很少报告fs.renameSync抱怨它无法找到文件的错误tempFile.path.

Error: ENOENT, no such file or directory 'xxx'
Run Code Online (Sandbox Code Playgroud)

我使用相同的网址列表来测试它,它失败了大约30%的时间.逐个下载时,网址列表相同.

测试了一些,我发现了以下代码

fs.createWriteStream('anypath');
console.log(fs.exist('anypath'));
console.log(fs.exist('anypath'));
console.log(fs.exist('anypath'));
Run Code Online (Sandbox Code Playgroud)

并不总是打印true,但有时打印第一个答案false.

我怀疑太多异步fs.createWriteStream调用无法保证文件创建.这是真的?有没有什么方法可以保证文件的创建?

node.js

34
推荐指数
2
解决办法
7万
查看次数

如何使用node.js复制wget的功能?

是否有可能wget从node.js应用程序中运行?我想要一个脚本来抓取一个站点,并下载一个特定的文件,但是该文件href的链接经常发生变化.所以,我认为最简单的方法是找到href链接,然后只需对它执行一个wget即可.

谢谢!

javascript wget node.js

12
推荐指数
3
解决办法
1万
查看次数

流上的 .pipe 和管道有什么区别

我在 node.js 中找到了两种不同的管道流方法

.pipe()流的众所周知的方法

https://nodejs.org/api/stream.html#stream_readable_pipe_destination_options

和流的独立功能

https://nodejs.org/api/stream.html#stream_stream_pipeline_streams_callback

我应该使用哪一个,这两者之间有什么好处?

stream node.js

11
推荐指数
2
解决办法
3712
查看次数

在电子应用程序中下载和存储文件

我正在开发一个应用程序,在第一次运行时必须通过API从网上下载文件(图像jpg/png),然后将其存储在本地,这样就不再需要在线连接(用户可以在线时运行更新)如果有可用的更新,请通过api下载更新的数据.

我知道桌面应用程序的工作方式非常罕见,但主要目标是将桌面应用程序数据与Web应用程序同步.

到目前为止,我已经找到了一个npm插件request(链接)来检查用户是否连接到互联网.

我不确定是否可以在电子应用程序中下载和存储文件(因此它在应用程序外部是不可见的)?你能推荐必要的插件/工具来实现这个目标吗?

任何帮助将不胜感激.

javascript desktop-application node.js npm electron

9
推荐指数
1
解决办法
1万
查看次数

无法使用API​​ - node.js从Google云端硬盘下载文件

我正在尝试使用node.js 使用Google SDK API从Google驱动器下载文件.

但我无法在服务器端写入/保存文件 - node.js

码:-

var GoogleTokenProvider = require("refresh-token").GoogleTokenProvider,
    async = require('async'),
    fs = require("fs"),
    request = require('request'),
    _accessToken;

var _XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
var https = require('https');

const CLIENT_ID = "";
const CLIENT_SECRET = "";
const REFRESH_TOKEN = '';
const ENDPOINT_OF_GDRIVE = 'https://www.googleapis.com/drive/v2';

async.waterfall([
        //-----------------------------
        // Obtain a new access token
        //-----------------------------
        function(callback) {
            var tokenProvider = new GoogleTokenProvider({
                'refresh_token': REFRESH_TOKEN,
                'client_id': CLIENT_ID,
                'client_secret': CLIENT_SECRET
            });
            tokenProvider.getToken(callback);
        },

        //--------------------------------------------
        // Retrieve the children …
Run Code Online (Sandbox Code Playgroud)

javascript node.js google-drive-api

6
推荐指数
1
解决办法
2796
查看次数

在 Node.js 中下载 typescript 中的文件

我正在尝试使用 node-fetch 下载带有 typescript (Node.js) 的文件。

根据此处的文档和堆栈溢出答案,以下代码应该有效:

public async downloadXMLFeed(): Promise<void>{
    // function for download the file to
    // a temporary location
    let fileStream = fs.createWriteStream(FILE_PATH, {encoding: "utf-8"});
    fetch(FILE_URL)
    .then((response) => {

        response.body.pipe(fileStream)

        fileStream.on("finish", () => {
            fileStream.close();
        })
    });
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误:

Property 'pipe' does not exist on type 'Response'
Run Code Online (Sandbox Code Playgroud)

我还检查了类型文件以获取节点获取类型的响应。它没有管道功能。

我在这里检查了节点获取的类型定义,根据此处的接口,响应的主体似乎是一个可读的流:

export class Body {
   constructor(body?: any, opts?: { size?: number; timeout?: number });
   arrayBuffer(): Promise<ArrayBuffer>;
   blob(): Promise<Buffer>;
   body: NodeJS.ReadableStream; // This should work.
   bodyUsed: boolean;
   buffer(): …
Run Code Online (Sandbox Code Playgroud)

javascript node.js typescript

6
推荐指数
1
解决办法
6545
查看次数

是否可以使用node.js从URL导入脚本?

我目前正在尝试从URL 导入我的一个脚本,但require在这种情况下该功能似乎不起作用.

var functionChecker = require("http://javascript-modules.googlecode.com/svn/functionChecker.js");

这是此脚本生成的错误消息的摘录:

Error: Cannot find module 'http://javascript-modules.googlecode.com/svn/functionChecker.js'

有没有办法从node.js中的URL导入脚本?

node.js

5
推荐指数
1
解决办法
4432
查看次数

使用node-html-pdf模块下载生成的PDF

我正在使用node-html-pdf模块从ejs我创建的模板生成PDF文件,该模板在生成后会保存在我的服务器上。

现在这可以正常工作,但是我真正需要的是单击按钮时,它会生成PDF并下载文件,而不是保存文件。

在下面,您可以看到我生成和保存文件的代码:

var html = null;

ejs.renderFile('./templates/participants.ejs', {users: req.body.users, course: req.body.course, organization: req.body.organization}, function (err, result) {
    if (result) {
        html = result;
    }
    else {
        res.end('An error occurred');
        console.log(err);
    }
});

pdf.create(html).toStream(function(err, stream){
    var file = 'c:' + stream.path; 
    // var file = full path to tmp file (added 'c:' because I'm testing locally right now)
    res.setHeader('Content-type', 'application/pdf');
    res.setHeader('Content-disposition', 'attachment; filename=' + file);
    res.download(file, req.body.course.name + '.pdf', function(err){
        if (err) {
           // Handle error, …
Run Code Online (Sandbox Code Playgroud)

javascript pdf pdf-generation node.js

5
推荐指数
2
解决办法
5216
查看次数

使用特定配置打开 Puppeteer(下载 PDF 而不是 PDF 查看器)

我想用特定的配置打开 Chromium。

我正在寻找激活以下选项的配置:

设置 => 站点设置 => 权限 => PDF 文档 =>“下载 PDF 文件而不是在 Chrome 中自动打开它们”

我在这个命令行开关页面上搜索了标签,但唯一处理 pdf 的参数--print-to-pdf不符合我的需要。

你有什么想法?

node.js puppeteer

5
推荐指数
2
解决办法
3131
查看次数

如何从 Node.js 中的 URL 下载音频文件?

如何从URL下载音频文件并将其存储在本地目录中?我正在使用 Node.js,并尝试了以下代码:

var http = require('http');
var fs = require('fs');
var dest = 'C./test'
var url= 'http://static1.grsites.com/archive/sounds/comic/comic002.wav'
function download(url, dest, callback) {
  var file = fs.createWriteStream(dest);
  var request = http.get(url, function (response) {
    response.pipe(file);
    file.on('finish', function () {
      file.close(callback); // close() is async, call callback after close completes.
    });
    file.on('error', function (err) {
      fs.unlink(dest); // Delete the file async. (But we don't check the result)
      if (callback)
        callback(err.message);
    });
  });
}
Run Code Online (Sandbox Code Playgroud)

没有发生错误,但未找到该文件。

javascript audio node.js

0
推荐指数
1
解决办法
2万
查看次数