Articles of expression

将zip文件解压到本地文件夹

我有节点应用程序快递和即时消息发送来自客户端的请求,如邮递员,我需要从请求获取文件,并提取它在我的本地文件夹,我怎么能做到这一点? 我发现以下开源,但不知道如何把req正文,并提取它在我的本地文件夹,如“C:// Test // extractDest”, 下面的代码是从以下开源获取的,但如果有其他好的开源的,我可以用它来代替 https://www.npmjs.com/package/decompress-zip var DecompressZip = require('decompress-zip'); var unzipper = new DecompressZip(filename) unzipper.on('error', function (err) { console.log('Caught an error'); }); unzipper.on('extract', function (log) { console.log('Finished extracting'); }); unzipper.on('progress', function (fileIndex, fileCount) { console.log('Extracted file ' + (fileIndex + 1) + ' of ' + fileCount); }); unzipper.extract({ path: "C://Test//extractDest", filter: function […]

如何使用joi(Node.js的validation框架)validation对象的数组?

我得到一个对象数组到后端,其中每个对象包含一个服务名称。 结构如下所示 [{"serviceName":"service1"}, {"serviceName":"service2"},..] 当我在后端得到数组时,我想validation数组中的每个对象都具有serviceName属性。 我已经写了下面的代码,但即使我传递有效的数组,我得到validation错误。 var Joi = require('joi'); var service = Joi.object().keys({ serviceName: Joi.string().required() }); var services = Joi.array().ordered(service); var test = Joi.validate([{serviceName:'service1'},{serviceName:'service2'}],services) 对于上面的代码,我总是得到消息的validation错误 "value" at position 1 fails because array must contain at most 1 items

我可以通过express next()函数发送数据吗?

我正在开发一个需要进行身份validation和会话pipe理的web应用程序。 我已经完成了后端会话的东西。 现在我想在UI上显示login的用户。privateContent是一个validation用户是否login的function,如下所示: … app.get( '/authRequired', queries.privateContent , routes.tasks ); … 这里是queries.privateContent: … exports.privateContent = function ( req, res, next ) { if ( req.session.user ) { var username = req.session.user.username; User.findOne( { 'username': username }, function ( err, obj ) { if ( true ) { next(); } else { res.redirect('/'); } }); } […]

读取node.js中csv文件的内容

我正在尝试在nodejs中实现一个模块( 刚刚开始在nodejs中工作 ),这个模块的要求如下 上传.csv文件。 阅读csv文件的内容。 当前用于restful api的框架是“express”:“〜4.2.0”和multer用于file upload。 现在我已经在我的app.js中configuration了像下面这样的multer app.use(multer({ onFileUploadData : function(file, data){ console.log('onFileUploadData Called with data – '+ data); } })); 在我的路由文件中,我有一个像下面的post端点 app.post('/sample.csv',lead.processCSV); 这条路由从下面的ajax调用被调用 $.ajax({ xhrFields: {withCredentials: true}, url: '/sample.csv', type: 'POST', success: function (data) { $scope.handleResponse(data); }, error: function (error, xhr) { angular.element('#csvUploadBusyIcon').hide(); alert('Oops! Upload failed'); }, data: formData, cache: false, contentType: […]

Node.js:正则expression式获取“From:”和“To:”

鉴于这个文本文件: Received: from unknown (HELO aws-bacon-delivery-svc-iad-1007.vdc.g.com) ([10.146.157.151]) by na-mm-outgoing-6102-bacon.iad6.g.com with ESMTP; 12 Apr 2011 14:30:47 +0000 Return-Path: 0000012f4a2a0037-528dbafb-e773-44be-bef5-07d8f63e6aee-000000@email-bounces.g.com Date: Tue, 12 Apr 2011 14:42:37 +0000 From: xxx@xxx.example.com To: yyy@yyy.example.com Message-ID: <0000012f4a2a0037-528dbafb-e773-44be-bef5-07d8f63e6aee-000000@email.g.com> Subject: test Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-AWS-Outgoing: 199.255.192.79 testing123 我想获得每个领域(返回path,date,从,到等)以及正文(“testing123”)。 我试过匹配使用: var bodyRegex = /[\n]Subject: (.+)[\n](.+)/ 但我得到空值。

Javascript:REGEX将所有相关url更改为Absolute

我目前正在创build一个Node.js webscraper /代理,但我无法parsing在源代码的脚本部分find相关的url,我想REGEX会做的伎俩。 虽然我不知道如何实现这一点。 无论如何,我可以去做这件事吗? 此外,我打开这样做的一个更简单的方法,因为我很困惑如何其他代理parsing网站。 我认为大多数只是荣耀的网站刮板,可以读取网站的来源中继所有链接/forms回代理。

在Express.js应用程序上传文件

我正在为Node.js,Express.js和Mongodb的组合开发移动客户端应用程序的RESTful API。 现在我试图处理用户configuration文件图像的上传,我find了一个名为“multer”的模块(这是express.js团队推荐的模块),它允许express.app处理multipart / form-数据请求。 现在我需要testing应用程序,而且,上传function,但我不能模拟一个httpforms的请求(通过邮递员铬插件)。 Multer返回这个错误: [错误:多部分:找不到边界] 事实上,比较一个http表单请求(工作)和一个自定义的http请求,第二个没有Boundary头部属性。 边界属性是什么?

NodeJS redis连接会话标识在应该保持不变时被重新生成

我试图在NodeJS中使用Redis的标准会话持久性: var express = require('express'); var RedisStore = require('connect-redis')(express); var app = module.exports = express.createServer(); // Configuration app.configure(function(){ app.use(express.bodyParser()); app.use(express.cookieParser()); app.use(express.session({ secret: "keyboard cat", store: new RedisStore, key: 'sid' })); }); app.get('/', function (req, res) { if (req.session.isValid) { console.log("There is an existing session."); } else { req.session.isValid = true; console.log("New session."); console.log('Old session ID: […]

在Express中跳到不同的路线链

我发现Express中相当有用的设备跳到了Express中间件的新链中 说我们有这个: router.post('/', function(req,res,next){ next(); }, function(req,res,next){ next('route'); //calling this will jump us down to the next router.post call }, function(req,res,next){ //not invoked next(); }, function(err,req,res,next){ //definitely not invoked }); router.post('/', function(req,res,next){ //this gets invoked by the above next('route') call next(); }, function(err,req,res,next){ }); 我可以看到这可能是有用的,并试图找出它是如何工作的。 我看到的问题就是这个解决scheme似乎只是在路上稍微踢了一下。 我想要的是能够调用next('route:a')或next('route:b'),以便我可以select由名称调用的处理程序,而不仅仅是列表中的下一个处理程序。 举个例子,我有这个: router.post('/', function (req, res, next) { //this […]

在expressjs 4.x中编译更less的文件到css

我想在expressjs应用程序的公共文件夹中编译较less的文件。 我正在使用的依赖关系是 "devDependencies": { "ejs": "^2.3.1", "express": "^4.10.6", "mysql": "^2.5.4" }, "dependencies": { "less": "^2.5.1", "less-middleware": "^2.0.1" } 内容在styles.less文件 header { background-image: url('../img/bg.png'); height: 380px; input#searchBox { width: 100%; height: 70px; } } 服务器文件如下所示 var express = require('express'); // call express var app = express(); // define our app using express app.use(require('less-middleware')('public')); // Public folder […]