Tag: 响应

Express / Node.js:渲染自定义JavaScript作为响应

在我的应用程序中,我需要提供一个API(类似Google Maps JavaScript API),通过这个API我可以发送一些自定义的javascript(带有一些会话和请求相关信息)作为响应。 然后用JavaScript在UI上绘制一些graphics。 我使用Express作为我的模板引擎。 我目前使用的代码是: app.use('/graph',function(req, res){ //send out graph data var var_name = req.session.var_name //fetch something from session var graphData = fetchGraphData(req.query.graph); //function that fetches graph data res.contentType("text/javascript"); res.render(__dirname + '/views/graph.jade', { title: "Title", queryStr: JSON.stringify({var_name: var_name, graphData: graphData }) }); }); 玉档: | some_var_name = { | initGraph : function(divId){ | […]

节点js,使用connect-memcached时不返回任何响应

您好我正在使用compoundjs和connect-memcached。 以下是我的envirionment.js文件中的内容: module.exports = function (compound) { var express = require('express'); var MemcachedStore = require('connect-memcached')(express); var app = compound.app; require('./mongoose').init(compound); app.configure(function(){ app.use(compound.assetsCompiler.init()); app.use(express.static(app.root + '/public', { maxAge: 86400000 })); app.set('view engine', 'ejs'); app.set('view options', { complexNames: true }); app.set('jsDirectory', '/javascripts/'); app.set('cssDirectory', '/stylesheets/'); app.set('cssEngine', 'stylus'); app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(express.favicon()); app.use(express.logger()); app.use(express.cookieParser()); app.use(express.session({secret: 'AuthenticationSecret', store: new MemcachedStore})); app.use(app.router); […]

node-express errror:express deprecated res.send(status):use res.sendStatus(status)instead

我想通过response.send()发送一个整数,但我不断收到此错误 express deprecated res.send(status): Use res.sendStatus(status) instead 我不发送状态,我的代码是 app.get('/runSyncTest' , function(request, response){ var nodes = request.query.nodes; var edges = request.query.edges; if (edges == "" ){ edges = [] } userStory.userStory(nodes,edges); connection.query('SELECT MAX(id) as id FROM report ', function(err,results, fields) { idTest = results[0].id response.send (idTest) }); }); 有什么build议么?

ExpressJS 3.0如何将res.locals传递给玉视图?

我想在用户login失败后显示一个Flash消息,但是我不能让variables显示在我的Jade视图中。 我有一些片断,我知道我必须在我的app.configure()中使用它: app.use (req, res, next) -> res.locals.session = req.session 在用户input错误的密码后,我将设置闪存信息: exports.postSession = (req, res) -> users = require '../DB/users' users.authenticate(req.body.login, req.body.password, (user) -> if(user) req.session.user = user res.redirect(req.body.redirect || '/') else req.session.flash = 'Authentication Failure!' res.render('sessions/new', {title:'New', redirect: req.body.redirect }) ) 我不知道如何访问我的Jade文件中的res.locals.session 。 我怀疑我正在设置一切正确的。 这个问题很像这个:将Express.js 2迁移到3,特别是app.dynamicHelpers()到app.locals.use? 但我仍然无法工作。 如果有人能给我看一个在res.local中设置值并在视图中访问它们的简单例子,我们将非常感激。 PS我知道连接闪光灯,但我需要了解如何在视图中提供的东西。 这是我的应用程序: app.configure(() -> app.set('views', __dirname […]

如何在结束响应之前输出数据?

以下是我在Chrome 11和Firefox 4中testing的代码片段: var http = require('http'); http.createServer(function(request, response){ // Write Headers response.writeHead(200); // Write Hello World! response.write("Hello World!"); // End Response after 5 seconds setTimeout(function(){ response.end(); }, 5000); }).listen(8000); 正如你所看到的,我超时了response.end()所以我可以testingresponse.write是否在response.end之前输出。 根据我的经验,虽然不是。 有没有办法在结束响应之前输出数据,如发送数据包中的数据?

如何在node.js + express中捕获“响应结束”事件?

我想编写一个快速中间件函数,在响应的“结束”事件(如果存在)上设置侦听器。 目的是根据最终处理程序决定发送的http响应代码进行清理,例如logging响应代码和db事务的回滚/提交。 即,我希望这个清理对最终调用者是透明的。 我想快速地做下面的事情: 路由中间件 function (req, res, next) { res.on ('end', function () { // log the response code and handle db if (res.statusCode < 400) { db.commit() } else { db.rollback() } }); next(); } 路线: app.post ("/something", function (req, res) { db.doSomething (function () { if (some problem) { res.send (500); } […]