Articles of 快车

图像被裁剪时,'Filereader'不会改变'reader'值,为什么?

我使用“FileReader”从input框中的原始图像中检索数据,但当裁切图像时,我无法获得新的读取器值。 所以当我在亚马逊上传时,我仍然有原始图像。 当我裁剪图像时,如何获得新的读者价值? JavaScript代码: require(['cropper']); $('body').on('change', '#image-of-shop', function(e) { e.preventDefault(); var overlay = $('<div class="page-overlay image-crop"></div>'), content = $('<div class="image-wrap"></div>'); content.append('<a href="#" class="close-static" data-event="close-crop"></a>'); var files = e.target.files; var f = files[0]; fileName = f.name; var reader = new FileReader(); reader.onload = function(theFile) { return function(e) { content.append('<img id="cropper" src="' + e.target.result + '" />'); […]

使用imagemin压缩图像并存储在mongodb中

我试图检索已发布到我们的nodejs服务器的图像,压缩它,然后将其存储在mongodb中。 我正在使用imagemin它正在工作,即它可以采取传入的图像,压缩它,并将其存储到一个静态目标文件夹。 但是,我想要输出imagemin进程并将该图像存储在mongo中而不是目标文件夹中! 这是逻辑坐标中的中间件; app.use(multer({ dest : './static/uploads/', limits : {… rename : function(fieldname, filename) {…. onFileUploadComplete : function(file) { //var imagemin = new Imagemin().src(file.path).dest('./static/uploads/').use(compressionType); var imagemin = new Imagemin().src(file.path).use(compressionType); imagemin.run(function(err, files) { if (err) { return next(err); } console.log('Files optimized successfully!'); }); // DO SOME LOGIC HERE TO STORE IMAGE(S) TO MONGO } }; […]

如何在nodejs中使用dynamic参数进行一系列并行API请求

我想根据存储在数组中的参数值(大约30-40个值),通过更改URL中的单个参数值进行一系列API调用。 我正在使用NodeJS和Express。 以下是我为此写的一个片段: var express = require('express'); var router = express.Router(); var rest = require('restler'); router.get('/myroute', function(req, res, next){ parameterArray = [ /* A list of parameter values in here gathered from two more API calls */]; returnArray = []; for(var i = 0; i < parameterArray.length; i++){ var url = 'https://api.example.org?parameter=' + parameterArray[i]; rest.get(url).on('success', […]

Mongodbasynchronous获取结果

这是我的行动,将从用户收集所有用户 app.post('/login', function(req,res,next){ users = self._db.get('users', {}) }) 这是我在数据库类中的function this.get = function( col, opt ) { var result = [], opt = opt || {}; query = db.collection(col).find( opt ); query.each( function(err, doc) { console.log( doc ); if( doc != null ) { result.push( doc ); } }); return result; }; 当我login用户对象它返回空数组,但是当我logging每个文件内function它成功的工作 问题是我怎样才能得到asynchronous的结果?

错误:在Heroku上找不到模块“./proto”

我似乎无法弄清楚为什么这个地方工作正常,但是当我推到Heroku它失败,以下错误。 来自Heroku的错误 Starting process with command `node web.js` module.js:337 throw new Error("Cannot find module '" + request + "'"); ^ Error: Cannot find module './proto' at Function._resolveFilename (module.js:337:11) at Function._load (module.js:279:25) at Module.require (module.js:359:17) at require (module.js:375:17) at Object.<anonymous> (/app/node_modules/express/node_modules/connect/lib/connect.js:14:13) at Module._compile (module.js:446:26) at Object..js (module.js:464:10) at Module.load (module.js:353:31) at Function._load (module.js:311:12) at Module.require (module.js:359:17) […]

sails.jsasynchronous问题

我想testingsails.js的asynchronous性能,所以我写了下面的代码等待10秒(我认为代码应该由于callback函数asynchronous执行)。 当我访问执行代码的url时,它等了10秒,没事的。 但是与此同时,我访问了一个只执行res.view(anohterView)的不同url,它仍然等了10多秒。 这是否意味着sails.js同步执行,并且第二个访问的URL被第一个阻塞? 谢谢! someModel.findOne(modelId, function foundModel (err, model) { if (err) return next(err); if (!model) return next('Model doesn\'t exist.'); function sleep(milliSeconds) { var startTime = new Date().getTime(); while (new Date().getTime() < startTime + milliSeconds); } sleep(10000); res.view(Someview); });

如何防止在Express中使用REST API调用中冲突的关键字

如果我正在为应用程序创build一个REST API,那么就我所知,path定义的顺序很重要。 例如,如果我按照以下顺序编写我的路线: app.get('/users/:username', user.get); app.get('/users/list', user.listAll); 那么user.listAll永远不会被访问到,并且当向/ users / list发出请求时,服务器会将“list”分配给username参数。 所以很明显你想要颠倒这些路线的声明顺序。 但是在这里,如果用户使用用户名'list'创build一个帐户,我们会遇到同样的问题,对吧? 那么如何防止用户使用“关键字”创build名称,这里的关键字定义为与api路由冲突的string。 我可以想到两种方法,但都不令人满意。 首先,你可以保留一个黑名单string,你比较每个用户名创build。 但保持这将是一场噩梦。 而且,只需在数据库中预先创build这些用户(只要用户名是唯一的)即可。 这种做法看起来有点不好意思,但我想不出有多less反对意见。 有没有简单的解决这个问题?

你如何streamcsv文件到节点的networking应用程序?

我刚刚在工作中接受了一个新项目。 这是一个内部ExpressJS应用程序,允许员工input数据。 有一个function,允许他们进入工资调整,但页面只允许他们一次input一个单一的调整,并提交。 他们需要批量上传function,以便他们可以上传包含数百个可能的调整的CSV文件。 我有function工作,但我正在使用的file upload中间件将文件放在一个临时目录。 我正在读取文件,parsing出调整项目,并将调整应用到工资核算数据库,然后从服务器中删除临时文件。 这一切都很好,但我真的很讨厌我正在做文件系统I / O,以及在parsing数据时将文件读入内存。 当我通过http学习更多关于传输数据的知识时,我意识到应该有可能将文件串stream并parsing这些项​​目。 如果是这样的话,我应该使用一个stream行的模块来达到这个目的吗? 什么是最简单的方法来将文件stream式传输到服务器并在运行中parsing它?

节点,快速,案例研究:“错误:发送后无法设置标题”

我的服务器崩溃,我在我的日志中发现以下错误: Error: Can't set headers after they are sent. 我无法重现错误。 我想我find了一个修复程序,但我想确保我理解下面代码中概述的问题。 基于这篇文章 ,我相信它来自我的Express路由器中的多个res.send(..)调用: router.post('/adduser', function(req, res) { var msg = '(message okay)' var db = req.db; db.collection('userlist').find({ username: req.body.username; }).toArray(function(err, items) { // verify the user, set session fields, etc… console.log("message after user verification is: "); console.log(msg); res.send({ msg: msg }); }); // Insert the […]

使用Express JS的JSON漏洞防护

我想知道如何在express.js中使用JSON漏洞保护。 http://haacked.com/archive/2008/11/20/anatomy-of-a-subtle-json-vulnerability.aspx 问题是我用来从控制器写入res.send(jsonObj),它将直接发送数据到客户端。 但是我想拦截回应并用某些东西修改并发送给客户端。 客户端然后可以撤消修改并检索原始数据。 我看到了res.format函数,但它不能满足我的需要。