在Node.js中调用AJAX后保持对象

时间:2013-04-08 16:17:10

标签: node.js

如何在AJAX请求期间创建的对象仍然存在,以便后续的AJAX调用可以使用它?

我尝试使用调试器在调用我的路由函数后查看我的变量是否存在,并且每次调用结束后它们似乎都被销毁了。

有任何建议或示例吗?

2 个答案:

答案 0 :(得分:2)

global variables are bad的第一个。我认为你所寻找的是sessions。使用Web框架express,这可以毫不费力地实现。

<强>的package.json

{
  "name": "hello-world",
  "description": "hello world test app",
  "version": "0.0.1",
  "private": true,
  "dependencies": {
    "express": "3.x"
  }
}

<强> app.js

var express = require('express');
var app = express();
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.cookieParser('keyboard cat'));
app.use(express.cookieSession());

app.get('/count', function (req, res) {
    if (req.session.count === undefined) {
        req.session.count = 1;        
    } else {
        req.session.count += 1;
    }

    res.send('Number of times you visited this page: ' + req.session.count);
});

app.get('/reset', function (req, res) {
    req.session = null;

    res.send('session has been reset');
});

app.listen(3000, '127.0.0.1');
console.log('Listening on port 3000');

创建文件package.json后,您可以安装 express 发布npm install。然后运行程序就像node app.js一样简单。路线htttp://localhost:3000/counter计算您访问该页面的次数。 即使您已关闭服务器。路线http://localhost:3000/reset用于重置计数器。

答案 1 :(得分:-1)

我在寻找的是global对象。

要在不同的模块和路由器调用之间使用foo,我声明了global.foo并使用了该对象。

http://nodejs.org/api/globals.html