Tag: 表示

如何正确使用Express 4多个路由器

我试图使用Express 4路由器根据path使用不同的路由器。 我想要版本2处理的所有/api/v2/路由,以及版本1处理的其他所有路由。 下面的设置正确地为我提供了所有的version1路由,但似乎忽略了version2因为每次我testing这些端点时都会收到“无法获取…”消息。 routes.js: var version1 = require('./routes/vers1'); var version2 = require('./routes/vers2'); module.exports = function(app) { app.all('/api/v2/*', version2); app.all('/*', version1); };

使用节点代理时出错

我使用下面的程序,当我运行它我有以下错误我能够运行应用程序,但是当我把浏览器localhost:3000我在控制台中得到这个错误… **Error: connect ECONNREFUSED** at exports._errnoException (util.js:746:11) at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1000:19) 这是我的程序非常简单的节点applicaton只有一个文件,下面的代码(这是我的服务器/应用程序/ .js var http = require('http'), httpProxy = require('http-proxy'), url = require('url'); proxy = httpProxy.createProxyServer({}); http.createServer(function (req, res) { switch (hostname) { case 'localhost': proxy.web(req, res, {target: 'http://localhost:9001'}); break; } }).listen(3005, function () { console.log('original proxy listening on port: ' + 3005); }); […]

如何正确的使用JavaScript和Jade一起使用render中传入的参数

所以我的问题是关于链接到子Jade模板中的外部JavaScript文件的正确位置,并向这些JavaScript文件传递数据(如果这甚至可能?)。 所以我使用Express,并使用传入的数据来呈现我的Jade文件,如下所示: router.get('/', function(req, res, next) { tflSentimentAnalysis.fetchTflSentiments(credentials, function(results){ res.render('twitterInsights', results); }); }); 数据现在可以在我的twitterInsights.jade中使用 #{results.attributeName} 我有一个非常简单的Jade文件,它从Jade模板延伸,如下所示: extend layout block content h2 Title of page p Page contents will go here 我需要包含2个JavaScript文件。 首先是bower_components中的D3.js库,其次是public / javascripts中我自己的JavaScript文件。 script(src="/bower_components/d3/d3.min.js") script(src="/public/javascripts/twitterVisualisation.js") 玉石模板中链接到JavaScript文件的最佳位置在哪里? 我的JavaScript文件(twitterVisualisation.js)需要在渲染时将数据传递给jade。 将这些数据传递给JavaScript文件的最好方法是什么? 我一直在寻找这个答案,并且很惊讶这不是一个常见的问题。 提前致谢。

MongoDB连接EC2

我只是设置了一个MongoDB实例,使用Bitnami MEAN栈在EC2中运行。 我试图连接到我的节点应用程序中的MongoDB实例,但我不知道URLpath是什么。 我熟悉这样的path: mongodb://username:password@candidate.37.mongolayer.com:port/database 但是我不清楚如何找出EC2实例的等价path。 我发现在其中一个目录中有一个mongodb-27017.sock文件,但是下面的文件不起作用。 mongodb://{USERNAME}:{PASSWORD}@{EC2LINK}/stack/mongodb/tmp/mongodb-27017.sock/{DATABASENAME} 有什么方法可以找出path是什么?

如何在nodejs中独立使用模块的子模块?

我希望使用已经存在的'utils-merge'节点模块作为express 4.12.3的依赖。 我有快递安装在我的服务器应用程序。 我努力了: var merge = require('express/utils-merge'); 和 var merge = require('utils-merge'); 但它会抛出错误'无法find模块'。

传递表单数据在Express / Node.js中不起作用

对不起,如果这是一个补救的问题,或者一个明显的错误,但这是我的第一个节点项目。 Essencailly我需要做的是获取一行文本,用户将input到前端的forms。 不幸的是,不pipe我做了什么结果日志“未定义”。 我不知所措 我将发布下面的完整代码,但给我麻烦的部分是: app.get('/test', function(req, res){ res.render('test'); }); app.post('/test',function(req,res){ console.log(req.body); }); “/testing”路线只是临时testing得到的forms反应(如果由于某种原因,不明显)。 我的完整HTML文件如下所示: <!DOCTYPE HTML> <head></head> <body> <form id="myform" action="/test" method="post" enctype="application/x-www-form-urlencoded"> <input type="text" name="name" id="mytext" /> <input type="submit" id="mysubmit" /> </form> </body> 任何想法/帮助将不胜感激。 这里是完整的app.js文件 var app = require('express')(); var http = require('http').Server(app); var exphbs = require('express-handlebars'); var twitter = require('./twitter.js'); var hue […]

在ExpressJS中更改“expires”标题?

我尝试了以下,但过期设置为1分钟: app.get(['/css/*','/js/*'],express.static('public',{maxAge:7*86400000})); app.get(['/fonts/*'],express.static('public',{maxAge:30*86400000})); 如何使用ExpressJS设置到期时间? 在上面的代码中,我试图设置到期时间分别为1周和1个月。

意见表示欢迎:为什么MEAN栈和Node.js?

我很好奇为什么selectMongoDB,Node.js,Express.js和AngularJS的根本原因? 下面是我能想到的原因:MongoDB在JSON和数据模型上运行良好,比SQL快; Express和Angular在Javascript中为这个堆栈提供了一种语言; Node.js是非阻塞的,基于事件的,并支持并发; Angular是一个很棒的前端框架。 任何其他原因? 另外,你将如何解决那些对服务器端Javascript有天生的鄙视的人呢? 谢谢!

在过滤node.js中的所有发布请求之前

我有我的node.js app.js下面的代码: var express = require('express') ,cors = require('cors') ,app=express(); var users = require('./routes/users'); //some other codes ….. app.use('/', routes); app.use('/users', users ); 如果向/users/adduser发出请求,它将转到routes文件夹中的users.js 。 现在我想添加一个filter来捕获所有的POST请求,并进行一些validation,并且只有满足这些条件时POST才会进入它的处理程序。 即如果我得到一个/users/adduser与POST请求,在去users.jspath文件夹中的方法之前,我应该能够捕获该请求,并停止它,如果条件不满足。 更新1现在我有这个app.use函数,但在结果我得到未定义,因为它不等待,直到函数返回值 app.use(function (req, res, next) { req.db = db; if (req.method != "POST") { next(); } else { var userData = req.body; var result = Check(userData); if(result){ next(); […]

节点服务器启动时parsingjson对象

当节点server.js(这是我的入口点)开始时,我需要parsingjson对象,json文件的parsing是在我的项目的diffrent模块中完成的。 我有两个问题 build议使用server.js文件中的事件调用parsing函数 我读了关于event.emiter,但不知道如何从不同的模块调用函数…例子将是非常有益的 我有多个JSON文件 更新使其更清楚 如果我读取3个json文件对象(每行50个),当服务器/应用程序加载(server.js文件),这将是快速的我猜。 我的情况是,快速调用的有效path的列表是在这个JSON文件 app.get('/ run1',function(req,res){res.send('Hello World!');}); 所以run1应该在json文件中定义 (如path的白名单 ),如果用户把我没有定义的run2我需要提供错误,所以我认为,当服务器是要做这个调用,并保持与所有configuration有效的objpath和当用户打电话只是得到这个对象哪个alreayparsing(当服务器加载),并validation是否可以,我认为它更好的方法,而不是这样做 更新2 我会尝试更简单的解释。 让我们假设你有一个你应该听的path的白名单 ,比如run1 app.get('/run1', function 这些path列表是在特定文件夹下的项目中的jsons文件中定义的,在每次通过express对应用程序进行调用之前,都应该validation所请求的path是否位于json的path列表中。 这是给出的 。 现在该怎么做。 目前我已经开发了一个模块来查找这个json文件,并且在那里find特定的path。 现在我认为正确的解决scheme是,当节点应用程序开始调用这个function,并在一些对象中保存有效path列表时,在用户调用期间我可以非常容易地访问它,并检查path是否存在。 我的问题是如何在节点应用程序(Server.js)提供此对象时向validation程序模块提供一些事件。