Tag: 表示

发送后无法设置标题

我正在使用节点版本0.10.3和Express 3.1.1。 我试图返回一个简单的回应,但我收到以下错误: http.js:692 throw new Error('Can\'t set headers after they are sent.'); ^ Error: Can't set headers after they are sent. at ServerResponse.OutgoingMessage.setHeader (http.js:692:11) 我已经读了很多,并尝试了很多解决scheme,但我仍然得到这个错误。 我已经使用节点检查器,我得到了该行后的错误 – res.render('index', { title: 'Express' }); app.js: /** * Module dependencies. */ var express = require('express') , http = require('http') , path = require('path') , socketio = require('socket.io'); […]

如何在远程服务器上从远程服务器获取JSON?

我正在寻找一种方法来复制jQuery方法getJSON,但服务器端。 我使用的服务器是一个用coffeescript编写的express框架的node.js服务器。 我有客户端的代码是: # To get the client IP $.getJSON("http://jsonip.com?callback=?", (data) -> # To get more information about that IP $.getJSON("http://freegeoip.net/json/" + data.ip, (fulldata) -> console.log fulldata)) fulldatavariables给我关于客户IP的信息。 我必须避免使用JavaScript客户端,所以我尝试做同样的服务器端,我得到的客户端IP: (req, res) -> # To get the client IP req.ip 但之后,我不知道如何从freegeoip.net服务器获取json中的完整数据。 帮助,任何人?

图像上传挂在移动浏览器,但不是在本地计算机上 – Node JS,Express

目前,我们正在尝试使用移动浏览器时挂起的图片上传,而当我们使用开发计算机时则无法上传。 我们认为express.bodyParser中间件是罪魁祸首,因为它没有得到我们的服务器中的代码。 我们正在使用节点0.10.11和expression式3.2.5 这是相关的服务器代码 // — Server Setup — \\ var server = express(); // all environments server.set('port', process.env.PORT || 3000); server.engine('ejs', engine); server.set('views', __dirname + '/views'); server.set('view engine', 'ejs'); server.use(express.favicon()); server.use(express.logger('dev')); server.use(express.json()) server.use(express.urlencoded()) server.use(express.methodOverride()); server.use(express.cookieParser('your secret here')); server.use(express.session()); //Passport stuff server.use(passport.initialize()); server.use(passport.session()); server.use(express.static(path.join(__dirname, 'public'))); server.use(server.router); // development only if ('development' == server.get('env')) { server.use(express.errorHandler()); […]

护照-socketio商店属性configuration

我想知道如何configurationpassport.socketio 。 我阅读文档,但仍然可以包装我的头如何设置store属性。 我正在使用passport-local 。 这是我的代码(相关部分): 一些configuration: app.use( express.cookieParser() ); app.use(express.methodOverride()); // use express.session before passport, so that passport session will work app.use(express.session({ secret: 'somerandomcod3' })); // Initialize Passport! Also use passport.session() middleware, to support // persistent login sessions (recommended). app.use(passport.initialize()); app.use(passport.session()); passport.socketioconfiguration io.set("authorization", passportSocketIo.authorize({ cookieParser: express.cookieParser, key: 'express.sid', secret: 'somerandomcod3', store: express.session, // not […]

如何使用Express在端口/域之间共享cookie

我有两个node.js(express)应用程序运行在两个不同的端口上。 一个在localhost:3000上运行,另一个在localhost:4000运行。 端口3000上的应用程序具有以下cookieconfiguration: app.use(express.cookieParser()) app.use(express.session({ key: settings.session.key, secret: settings.session.secret, cookie: settings.session.cookie, fingerprint: function () { return '' }, store: new MemoryStore() })) 另一个应用程序(端口4000 )有: app.use(express.cookieParser()) app.use(express.session({ key: settings.session.key, secret: settings.session.secret, cookie: settings.session.cookie, fingerprint: function() { return '' }, store: new MongoSessionStore({ db: db }) })) 他们都使用相同的会话configuration对象(唯一不同的是一个正在存储在MongoDB中,而另一个是在内存中。 我设置了一个类似于localhost:3000的cookie: res.cookie('mycookie', 'bar', { domain: 'localhost:4000' }) 然后我POST(与jquery.ajax)到localhost:4000上的路由,而cookie mycookie不存在。 […]

如何在Express中使用haml.js呈现HAML模板

我需要在我的Node.js / Express应用程序中呈现HAML模板。 我试图configurationhaml.js作为视图渲染器: haml = require('hamljs') … app.set('view engine', 'hamljs') app.engine('.haml', haml.render) 和我的GET / handeler中的代码: options = layout: "layout.haml" locals: message: 'world' res.render('index.haml',options) 但应用程序不会收到任何数据。 这是haml.js 文档中的另一个例子: app.engine('.haml', require('hamljs').renderFile); 但是没有这样的function。

req对象在passport.authenticate

我在我的服务器上使用passportjs进行身份validation。 我正在使用下面的代码: exports.auth = function(req, res, next){ passport.authenticate('bearer', { session: false })(req, res, next); }; passport.use(new BearerStrategy( function(token, done) { User.findOne({ token: token }, function (err, user) { if (err) { return done(err); } if (!user) { return done(null, false); } return done(null, user, { scope: 'read' }); }); } )); 有没有办法访问passport.use中的req对象? 这是我可以得到用户的IP地址,并检查最终的攻击。

nodejs集群模块 – 使用中的地址错误

我有一个express.js应用程序,每次有一个特定的请求(这里是:/计算/实时),它必须运行一个subprocess。 将会有用户创build的脚本来计算数据。 所以,我正在使用节点集群模块创build一个工作池,并select一个可以自由执行的脚本。 但是在集群本身的创build过程中,我碰壁了。 这里是代码clusterPool.js var cluster = require('cluster'); exports.setupCluster = function(){ console.log ("Setting up cluster for bot processing " ) if (cluster.isMaster){ cluster.fork(); //one is good enough at the moment } } compute.js var async = require('async'); var clusterPool = require('.././clusterPool') //Start the cluster clusterPool.setupCluster(); exports.computeRealTime = function(req,res){ clusterPool.cluster.on("listening",function(worker){ //….Do something with the worker […]

使用Express合并,缩小和提供JavaScript文件,但不会解压

我正在使用Express来构build一个Web应用程序。 我想要合并,缩小和服务.js文件。 我写了一个中间件,这是我的代码: var fs = require('fs'), path = require('path'), uglify = require('uglify-js'), cache = '', scriptsDir = path.join(__dirname, '../scripts'), files = fs.readdirSync(scriptsDir); // Sync read is not a problem since the following code is executed on startup files.forEach(function(fname) { if (/^.*\.js$/.test(fname)) { cache += fs.readFileSync(path.join(scriptsDir, fname), 'utf8').toString(); } }); cache = uglify.minify(cache, { fromString: […]

Amazon Kinesis NodeJS – putRecord操作到期

我使用NodeJS和Express作为代理来处理HTTP GET请求,做一些小的数据适配,并将数据提交给Amazone Kinesis。 这里是我的代码摘录: var express = require('express'); var app = express(); app.get('/proxy-test', function(req, res){ var data = req.query; // perform some light data processing // send results to kinesis kinesis.putRecord({ StreamName : MY_STREAM_NAME, Data : data, PartitionKey : MY_PARTITION_KEY }, function(err, data) { if (err) { console.log(err, err.stack); // an error occurred } else […]