小编dra*_*say的帖子

用于文件上传的 JWT 令牌和 Multer(节点)

我需要一些帮助来弄清楚如何让这个工作 - 我已经测试过并在我的“/用户”路由上使用了 JWT 身份验证和 SSL。我试图安全地允许用户上传音频文件,也使用 JWT 和 SSL 路由。

身份验证中间件可以工作,当我注释掉身份验证中间件时,multer 可以让我上传文件。但是,当我保留中间件时,已在我的系统上创建了上传的文件,但该文件无法正确上传,并且出现 404 错误。

谢谢你的帮助!

server.js(主文件)

var express     = require('express')
, app           = express()
, passport      = require('passport')
, uploads       = require('./config/uploads').uploads
, user_routes   = require('./routes/user')
, basic_routes  = require('./routes/basic')
, jwt           = require('jwt-simple');

// get our request parameters
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());


// Use the passport package in our application
app.use(passport.initialize());
require('./config/passport')(passport);

//double check we have an ssl connection
function ensureSec(req, res, next) {
    if (req.headers['x-forwarded-proto'] == 'https') …
Run Code Online (Sandbox Code Playgroud)

node.js express jwt multer

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

Web Audio onaudioprocess适用于Firefox,JSFiddle in Chrome,但不适用于Chrome本身

我在WebAudio/WebMIDI应用上使用Chrome 39.0.2171.71(64位).我安装了jazz-soft webmidi插件.

我无法让onaudioprocess开火.我已经删除了最基本的代码:

<!DOCTYPE html>
<html lang="en">
    <head></head>
    <body>
        Page Loaded.
        <script>
             var context;
             if (window.AudioContext) {
                 context = new AudioContext(); 
             } else {
                 context = new webkitAudioContext(); 
             }
             console.log('Javascript is working.');

             oscillator = context.createOscillator();
             oscillator.start(0);

             myscriptnode = context.createScriptProcessor(4096, 1, 1);
             myscriptnode.onaudioprocess = function(event) {
                  console.log('ONAUDIOPROCESS works!');
             };

             oscillator.connect(myscriptnode);
         </script>
     </body>
</html>
Run Code Online (Sandbox Code Playgroud)

这适用于Firefox.事实上,我一直在玩的大部分内容都适用于Firefox,但不适用于Chrome.但是,以下两个示例适用于在Chrome中运行的JSFiddle:

http://jsfiddle.net/78yKV/3/ (这个例子运行但是onaudioprocess回调似乎很慢/不稳定,它有时会被删除,需要重新启动.)

http://jsfiddle.net/99rxd/ (对于这个例子,我必须添加function(){console.log('error');}的第三个参数到getUserMedia()以使其运行.这给了我一个当我启动它时,未定义的引用错误是未定义的,但它随后运行并且onaudioprocess回调可靠地工作.)

我试过的事情

我进行了详尽的搜索,看起来像createScriptProcessor存在一些Chrome范围问题.我已经尝试了一切将我的流程范围扩展到全局(在顶部声明它,声明没有'var',设置myscriptnode.onaudioprocess = window.audioProcess = function(event))并且没有任何工作.一切都在Firefox中有效.

我坚持希望的唯一原因是因为JSFiddle的工作原理.似乎代码在JSFiddle中工作的主要原因而不是在浏览器中与等待DOM加载有关.我怀疑这是问题,但我尝试将我的javascript放入(function(/ code /)();,将oninit()函数添加到body标签并将我的代码放入函数init(){}等中.没运气.

我不知道发生了什么事.如果它在JSFiddle中工作,我不应该能够在浏览器中工作吗?是否有另一种方法来改变范围,以便我的事件处理程序不会被垃圾收集(这是我假设的问题)...或者是否存在更基本的错误?我还没有看到使用浏览器中的onaudioprocess工作的一个回调,这让我觉得它可能比范围/垃圾收集问题更基本.它可能是爵士软件插件吗?

谢谢您的帮助!

javascript google-chrome jsfiddle web-audio-api

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