小编Kar*_*l.S的帖子

如何从JS中的ArrayBuffer编写文件

我正在尝试为Meteor框架编写一个文件上传器.原理是将客户端上的文件从ArrayBuffer拆分为4096位的小包,通过Meteor.method发送到服务器.

下面简化的代码是客户端向服务器发送一个块的部分,它会重复,直到offset到达data.byteLength:

// data is an ArrayBuffer
var total = data.byteLength;
var offset = 0;

var upload = function() {
  var length = 4096; // chunk size

  // adjust the last chunk size
  if (offset + length > total) {
     length = total - offset;
  }

  // I am using Uint8Array to create the chunk
  // because it can be passed to the Meteor.method natively
  var chunk = new Uint8Array(data, offset, length);

  if (offset …
Run Code Online (Sandbox Code Playgroud)

javascript file-upload node.js arraybuffer meteor

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

如何在客户端使用React的BrowserRouter和服务器上的Java REST API(Spring Boot)?

我想在客户端上使用React,在REST服务器上使用Java Spring Boot,客户端和服务器都打包在一起,因此它们托管在同一个应用服务器上.

我已经可以通过/api路径查询服务器API .

但是,(如何)我可以使用BrowserRouterreact-router-dom客户端,而不是在(路由器V4) HashRouter

我不太了解Spring Boot,但我想我可以在服务器上查看路由是否匹配/api,然后我会返回index.html带有基于HTTP查询位置路径处理路由的所有反应逻辑?

我希望我很清楚,我不希望URL中的哈希值和路由必须在客户端上完成.

javascript java reactjs spring-boot react-router-v4

7
推荐指数
1
解决办法
1070
查看次数

如何创建临时写流?

我有一个文件流,我想传入一个名为transformRead()的方法,该方法接受一个readStream和一个writeStream,但是我不知道如何创建临时写流...我是否必须使用一个文件?我只想要从rs到ws的pipe(),然后将ws压缩并发送到响应。

            // Get file stream
            var rs = store.getReadStream(fileId);
            var ws = ?????; 

            // Execute transformation
            store.transformRead(rs, ws, fileId);

            var accept = req.headers['accept-encoding'] || '';

            // Compress data if supported by the client
            if (accept.match(/\bdeflate\b/)) {
                res.writeHead(200, {
                    'Content-Encoding': 'deflate',
                    'Content-Type': file.type
                });
                ws.pipe(zlib.createDeflate()).pipe(res);

            } else if (accept.match(/\bgzip\b/)) {
                res.writeHead(200, {
                    'Content-Encoding': 'gzip',
                    'Content-Type': file.type
                });
                ws.pipe(zlib.createGzip()).pipe(res);

            } else {
                res.writeHead(200, {});
                ws.pipe(res);
            }
Run Code Online (Sandbox Code Playgroud)

javascript stream node.js

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

导入未定义的 npm 模块

我发布了一个 npm 包:https ://www.npmjs.com/package/jk-router

当用作经典的全局变量时它工作正常window.Router。但是当我尝试在一个非常基本的 Meteor 应用程序中使用 ES6 语法导入它时,它确实返回underfined......

如您所见,我正在使用命名导出(https://github.com/jalik/jk-router/blob/master/src/router.js#L174)并且确保我也使用默认导出(https: //github.com/jalik/jk-router/blob/master/src/router.js#L559)。

但以下都不返回 Router 对象:

import Router from "jk-schema";
import {Router} from "jk-schema";
Run Code Online (Sandbox Code Playgroud)

也许 wepback 配置有问题? https://github.com/jalik/jk-router/blob/master/webpack.config.js

const path = require("path");
const Package = require("./package.json");
const isProd = process.argv.indexOf("-p") !== -1;
const filename = Package.name + (isProd ? ".min" : "");

module.exports = {
    target: "web",
    entry: {
        bundle: path.join(__dirname, "src/router.js")
    },
    output: {
        path: path.join(__dirname, "dist"),
        filename: `${filename}.js`
    },
    resolve: { …
Run Code Online (Sandbox Code Playgroud)

javascript node.js npm meteor webpack

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