保存node.js发布数据以显示自Web应用程序启动以来添加的所有logging

我正在使用具有包含关于某人的基本信息的表单的node.js在Web应用程序上工作。 我需要从Web应用程序启动后添加的所有logging显示在提交页面上。

我相信我需要创build一个数组来存储这些信息,但这是我开始混淆的地方。 我不知道在哪里创build数组添加信息。 我怀疑它应该在app.js中,我打电话app.post('/添加',routes.add);

我认为这应该也许是这样的事情从我在这里find一个例子如何添加一个新的复杂条目到一个JavaScript数组? :

// Routes app.get('/', routes.index); app.post('/add', routes.add); var people = [{name, country, date, email, phone}]; people.push({name, country, date, email phone}); 

然而,数组看起来只能容纳1人足够的信息。

请让我知道如果我的问题不够清楚,我会尽力澄清

提前致谢!

编辑:我相信,当我呼吁routes.add这个代码是从我的index.js文件执行

 exports.add = function(req, res){ res.render('add', { title: 'Person added', name: req.body.name, country: req.body.country, date: req.body.birthday, email: req.body.email, phone: req.body.phone}); }; 

在我的add.jade文件中:h1信息添加p名称:#{name} p国家:#{country} pdate:#{date} p电子邮件:#{email} p电话:#{phone}

有几件事可能会让你开始。

数据库

我build议你将数据库移动到另一个文件,这样以后你可以用一个“真正的”数据库replace它。 IE浏览器。 做这样的事情:

  • 在app根目录下创build一个lib目录,
  • 在该目录中创build一个db.js,
  • 把这段代码放在db.js中:

      var database = [], counter = 0; // add method adds a new object to db. exports.add = function(person) { person.id = counter; counter = counter + 1; database.push(person); return id; // we return id, so that we can use it as a reference to this object. } // get method retreives the object by id. exports.get = function(id) { return database[id]; // this will return undefined if there is no such id }; exports.list = function(){ return database; } 

现在你有一个数据库。

控制器

你在这样的其他文件中使用数据库:

  var people = require('lib/db'); // or if you're in a routes directory,require('../lib/db') or appropriate path people.add({name: 'Sarah'}); // returns 0 people.add({name: 'Zlatko'}); // returns 1 people.get(1); // returns {name: 'Zlatko'} 

现在在您的routes / index.js中,您可以包含您的数据库,并保存或检索用户或所有用户。 与您的exports.add相似

 var id = people.add({name: req.body.name, email: req.body.email}); res.render('add', people.get(id)); 

您还可以创build一个“人员”视图,并将其作为参数数组传递给{people: people.list()}对象。

我没有包括任何validation,检查,任何事情,使这个例子更清楚。 这个数据库可以容纳一个人以上,这足以让你开始。 我认为这很清楚。

我希望这有帮助。