路线链接快递

我有一个简单的应用程序,build立在node.js和express的帮助下。 这个应用程序有多个路线和基本的login/注销机制。 我想要所有的路由来检查使用是否已经login,否则 – redirect到login表单。 这可以通过在每个路由文件中插入auth检查器行来完成。 问题是:是否有可能链路由推送所有请求通过login检查器路由,然后将其传递到所请求的一个,而不写任何东西到现有的路由文件? 例如现有的路由是“/”,“/ upload”,“/ login”,“/ logout”。 我希望获取或发布 “/ upload”的请求首先由“/ login”路由处理,然后通过“upload”路由处理。

node-amqp队列销毁:通知订户

我使用node-amqp和rabbit作为一些pub / sub工具。 我想知道是否有可能通知订阅者某人/某事(在其他进程中)已经销毁他们正在收听的队列。 例如,处理一: connection.queue(name = "test-queue1", options, function(queue) { queue.subscribe({}, function(message, headers, deliveryInfo) { deliverMessage(message); }).once('error', function(error) { logger.error(error) }).once("queueDeleteOk", function bindHandler() { queue.close(); }); }; 现在,其他进程可能会破坏该队列。 用户如何知道这一点? 例如,stream程二可以做到: connection.queue(name = "test-queue1", options, function(queue) { queue.destroy(delete_options); }).once("queueDeleteOk", function bindHandler() { queue.close(); }); 我试图听取“queueDeletedOk”这个事件的作用,但是它只在进程2中被发送和接收,这正在销毁队列。 尝试事件“closures”在队列上同样发生。 感谢和最好的问候,

如何在Eclipse / Aptana Studio中自动启动node.js应用程序,以便在开发时更改源代码?

这不是一个真正的问题,而是某种意义上的指导。 我没有find一个更好的地方发布。 我希望有人认为这有帮助。 我厌倦了停止并启动node.js应用程序来获取代码更改。 所以我想要一个解决scheme,没有太多的麻烦和安装额外的插件,软件包或其他任何东西 。 在Windows 8.1 x64上使用标准Aptana Studio 3.4(Eclipse)的纯解决scheme如下: 在Project Explorer > Properties> Builders中右键单击您的项目 新build…>程序>确定 名称:终止现有的node.js进程(es) 位置:C:\ Windows \ System32 \ taskkill.exe($ {env_var:SystemRoot} \ System32 \ taskkill.exe没有为我工作,它可能为你) 工作目录:浏览工作区…>select您的项目>确定 参数:/ IM node.exe / F 切换到构build选项选项卡并勾选在自动构build过程中 , 取消 在后台启动 >确定 创build另一个构build器:新build…>程序>确定 名称:开始<your-project-name> 位置:C:\ Program Files \ nodejs \ node.exe(您也可以尝试$ {env_var:ProgramFiles} \ nodejs \ node.exe) 工作目录:与第5点相同 […]

你能为mongoosejs中的对象设置一个部分模式吗?

你能为mongoosejs中的对象设置一个部分模式吗? 说我有一个人对象,我想validation它总是有一个first_name和last_name字段。 但是我也想让用户保存自己select的其他字段。 说我有以下架构: var userSchema = new mongoose.Schema({ first_name : { type: String, required: "first name required" } last_name : { type: String, required: "last name required" } }) 但我希望应用程序能够发布这个: { first_name: "john", last_name: "doe", field_not_in_schema: "info" } 那可能吗?

如何检查我的node.js服务器在哪个URL上运行?

我有两台服务器: db.mydomain.com和 db2.mydomain.com(用于开发) 我如何检查我的代码在哪个服务器上运行? 我想对生产数据做一个备份,但不是从开发者那里进行备份。 任何想法如何做到这一点? 谢谢。

我使用IP地址获得ENOTFOUND Node.JS

我试图从外部网站获取信息,但我得到这个错误: getaddrinfo ENOTFOUND 我的代码是: var options = { host: 'http://DOMAIN_OR_IP_ADRESS/', port: 8080, path: 'PARAMS_GET (I GUESS)', method: 'GET', agent: false }; http.get(options, function(resp){ resp.on('data', function(chunk){ console.log(chunk); }); }).on("error", function(e){ console.log("Error: http://IP_OR_DOMAIN" + "\n" + e.message); console.log( e.stack ); }); 当我使用这个选项: var options = { hostname: 'www.google.com', port: 80, path: '/index.html', method: 'GET', agent: false }; […]

节点,js – Mongoose – 无法保存地理多边形 – CastError:强制转换为编号失败

我正在尝试将地理点和地理多边形保存到Mongo。 我的testing通过点,但失败的多边形: CastError:在path“坐标”处投射数值失败,值为“0,0,3,0,3,3,0,3,0,0” 我的模式如下: var GeoSchema = new Schema({ name: String , coordinates: [Number] }); GeoSchema.index({ coordinates: '2dsphere' }); 我成功保存的testing点对象: geoPoint = new Geo({ coordinates: [2,2], type: 'Point' }); 我的testing多边形对象不能保存: geoPolygon = new Geo({ type: 'Polygon', coordinates: [[ [0,0], [3,0], [3,3], [0,3], [0,0] ]] }); 我曾尝试更改为“坐标”的typesdef到一个对象和一个数组,但然后都无法保存。 任何人都可以build议吗? *更新* 我现在可以使用以下方法传递testing: 模式: var GeoSchema = new Schema({ […]

在Node.js中观看文件

我正在编写一个Node.js服务器,该服务器监视一个充满空文件的目录以进行更改。 当文件改变时,它通知客户端,然后清空文件。 手表代码是: fs.watch("./files/", function(event, targetfile){ console.log(targetfile, 'is', event) fs.readFile("./files/"+targetfile, 'utf8', function (err,data) { if (err) { return console.log(err); } if (data=="") return; //This should keep it from happening //Updates the client here fs.truncate("./files/"+targetfile, 0); }); }); 更改事件发生两次,客户端更新两次。 这不可能发生。 它像watch函数一样被同时调用两次,并且都可以在得到truncate命令之前执行。 我如何防止这种情况发生? 我不能阻止一个线程,因为我需要它实时响应其他文件。 感谢您的帮助。 我是Node.js的新手,但到目前为止我很喜欢它。

Node.js:带有CNAMElogging的url路由

我想将example.org和cname.example.org映射到两个不同的node.js应用程序。 但是不要使用http网页服务器,如nginx。 Web框架是express 。 那么express或node.js中的任何中间件都可以这样做吗?

节点encryption-js AESencryption – >解密使用情况?

我正在试图在节点上生成一个简单的crypto-jstesting,如下所示: 'use strict'; var AES = require('crypto-js/aes'); var key = 'passPhrase'; var ecr = function(str) { return AES.encrypt(str, key); }; var dcr = function(str) { return AES.decrypt(str, key); }; console.log(dcr(ecr('hello world'))); // expected result is: hello world 实际结果是: { words: [ 1751477356, 1864398703, 1919706117, 84215045 ], sigBytes: 11 } 什么是正确的用法?