Node.js:Multer上传的承诺?

我有这个快速路由与multerfile upload。 上传完成后,我想将图像编码为base64并发送响应。 但是,当我这样做时,代码尝试执行base64编码之前,文件创build到文件夹。 编辑 :增加了存储和上传function const storage = multer.diskStorage({ destination: (req, file, callback) => { if (!fs.existsSync('./uploads')) { fs.mkdirSync('./uploads'); } let path = './uploads'; callback(null, path); }, filename(req, file, cb) { let fileExt = file.originalname.substring(file.originalname.lastIndexOf('.')).toLowerCase(); if (!imageFilter(fileExt)) { return false; } else { cb(null, file.originalname); } }, onError: function (err, next) { console.log('error', err); […]

节点应用程序随着时间的推移逐步进食

我刚刚在DigitalOcean上推出了两个Express服务器以及一个mongodb实例。 我正在使用PM2来保持它们的运行。 当我使用htop查看内存使用情况时,总使用量通常在220-235mb左右(总共488mb)。 我能看到的唯一变化就是蓝色条,我假设它是缓冲区内存,使用中的实际绿色内存似乎总是相同的。 然而我看DO的图表,在过去的24小时内,内存graphics一直在缓慢攀升,比如说每小时总量的0.5%,有时会下降,但是总体上是在上升,目前一直在60左右,几个小时内总内存的65%。 这些节点networking服务器上几乎没有stream量,但是内存不断增加。 所以我的问题是,这可能是我的服务器之一的内存泄漏,还是增加扩展其内存的V8引擎的本质?

如何在Node.js中对promise做recursion请求?

我需要从API读取数据,每个查询只得到100个结果,从哪里获得下一个100个时间戳。 我设法用下面的代码一个接一个的做多个请求,但由于某种原因,它永远不会回到最初的承诺。 它卡在“没有更多的订单取”。 app.get('/test', (req, res) => { const getOrders = (from) => { return request(mcfApiUrl + "changes?created_after_ts="+from+"&key="+mcfKey) .then(xml => convert.xmlDataToJSON(xml,{explicitArray:false,mergeAttrs:true})) .then(orders => checkForMore(orders)); } const checkForMore = (orders) => { return new Promise((resolve, reject) => { if (orders['Orders']['orders'] == 100){ getOrders(orders['Orders']['time_to']); console.log("Fetched "+ orders['Orders']['orders']+" orders"); console.log("More orders available from: "+moment(orders['Orders']['time_to']*1000).format()); } else { console.log("Fetched […]

如何使用下载的纱线依赖关系

这可能是一个非常愚蠢的问题,但如果你能帮助我的话,那将是非常棒的。 这是问题:我已经添加了一个包到我的项目。 它包含一些我想在我的HTML文件中使用的CSS文件等。 我已经使用yarn add <package>添加了它。 这些文件位于/node_modules/semantic-ui-css/semantic.min.css 。 我必须引用完整的node_modulepath来加载我的HTML文件中的CSS文件? 这听起来不对。 在我使用包pipe理器之前,我只是下载了一些css文件,将它们放到/vendor/css/并使用它们。 或者现在正常使用<link rel="stylesheet" type="text/css" href="node_modules/semantic-ui-css/semantic.min.css"> ?

DynamoDB Local在closures实例后删除数据

我正在为我的应用程序使用DynamoDB Local,并且每次closures实例时都会删除所有示例数据。 有谁知道为什么发生这种情况? 我试图查看它,但我没有看到其他人有这个问题。 我已经使用了dynamodb的可下载版本,并使用这个命令: dynamodb_local_latest baopham$ java -Djava.library.path=./DynoDBLocal_lib -jar DynamoDBLocal.jar -sharedDb -inMemory启动和实例。 我错过了什么? 谢谢。

将数据从Node传递给Vuejs

我有一个本地Node.js服务器运行在端口3000.我有另一个前端使用webpack,在8080上运行的开发服务器。节点连接到MySQL服务器。 我的项目结构如下所示: SampleProject -> BackEnd -> FrontEnd 我已经使用webpack-dev-server代理选项将来自webpack-dev-server(8080)的请求代理到节点(3000)。 开发服务器configuration我的webpack.config.js看起来像这样: – devServer: { proxy: { '/api': { target: 'http://localhost:3000' } }, historyApiFallback: true, noInfo: true } 我在services.js中写了一个Node api exports.getAllPatientData = function(req, res) { con.connection.query("SELECT fname, lname, city, country_code, TIMESTAMPDIFF(YEAR, DOB, CURDATE()) AS age FROM sbds_patient_data where pid = 1", function(err, result, fields) { if (err) { […]

无法在NodeJS中下载页面

我想在NodeJS中下载页面( https://www.csfd.cz/tvurce/65871 ),但是我只能得到随机数据。 }Ms F +i" ) Jْ; e 7 KM0 LƩ ] Yg b Ow7U J # K 9 L 我以为这只是错误的编码,但即使大小是错误的(下载页面有44K,而这个文件只有19K。更令人惊讶的是,简单的下载python的工程很好。 Python代码: import requests url = "https://www.csfd.cz/tvurce/65871" r = requests.get(url) with open('pyth.txt','wb') as handle: handle.write(r.content) JavaScript代码: const request = require('request-promise') const fs = require('fs') request('https://www.csfd.cz/tvurce/65871').then((html) => { fs.writeFileSync('output.html', html) }) 我也尝试了像request.get等附加方法等,但仍然是相同的结果。 你能告诉我我做错了什么吗?

Mongoose连接authentication失败

有了这个帮助,我在mongo shell中创build了一个超级用户: 在mongo中创build超级用户 user: "try1" passw: "hello" 在mongo cmd中,我有3个数据库:'admin','myDatabase'和'local'。 现在我尝试使用这个授权连接到名为“myDatabase”的数据库。 mongoose.connect('mongodb://try1:hello@localhost:27017/myDatabase'); 但这是我得到的错误: 名称:'MongoError', 消息:“validation失败。”, OK:0, errmsg:'validation失败', 代码:18, codeName:'AuthenticationFailed'} mongoose断开连接 通过$ {msg}断开Mongoose

无法在Nodejs中访问db结果,它总是返回null

var robject=[]; async.waterfall([ function (callback) { for(var i in serial){ Router.find({},{r_serial_no:serial[i]},function (err,routerData) { robject = robject.concat(routerData); }); } console.log('Robject= '+robject); //THIS RETURNS NULL callback(null, robject); }, function (blogs, callback) { res.render('index', {dispatched_data:dispatched_data }); callback(null, 'Ended..' ); } ], function (err, result) { console.log(result); }); 这是我的瀑布模型,在这里我需要从schema.find方法到该方法的外部访问robject 。 但它总是返回null ..如何访问?

如何在没有E标记的情况下在我的Messenger软件中显示非常小的数字?

我有一个机器人,需要在encryption显示非常小的转换。 目前,当数字很小时,输出以科学记数法显示E.我不想这种表示法,我怎样才能把它格式化为正常数字 提前感谢您的回答。 在Node.js中编码