【问题标题】:'node filename.js' command Where is it storing my data?'node filename.js' 命令它在哪里存储我的数据?
【发布时间】:2014-09-20 06:01:21
【问题描述】:

我正在尝试将我的 AngularJS 应用程序连接到 heroku 数据库。我在这里遵循本指南(http://nodeexamples.com/2012/09/21/connecting-to-a-postgresql-database-from-node-js-using-the-pg-module/),我走到了最后,它甚至显示了我使用代码“client.query(INSERT INTO ...)”创建的所有数据,但我的问题是,它在我的实际目录中的什么位置存储我的数据?即使我通过我的 heroku 数据库的用户、密码、数据库等进行了连接,它也没有显示在我连接的 heroku 数据库中,但是它存储在某个地方。

我在 index.js 中的代码

var pg = require('pg');

var client = new pg.Client({
    user: "herokudatabaseusername",
    password: "herokudatabasepassword",
    database: "herokudatabasebasename",
    port: 0000,
    host: "hostname",
    ssl: true
}); 
client.connect();

client.query('CREATE TABLE IF NOT EXISTS table(id integer, name varchar(64), description varchar(1024), type varchar(128), ...etc');
client.query('INSERT INTO table(id, name, description, type, ...etc) values($1, $2, $3, ...etc)', [ 1, 'someinfo', 'moreinfo', ...etc]);

var query = client.query('SELECT id, name, description, type, ...etc, FROM table ORDER BY name');
query.on('row', function (row, result) {
    result.addRow(row);
});
query.on('end', function (result) {
    console.log(JSON.stringify(result.rows, null, '    '));
    client.end();
});

在终端中运行我的“node index.js”命令两次后的示例输出

[
    {
         "id": 1,
         "name": "...",
         "description": "...",
         "ect": "...",
         "ect": "...",
         ...
         ...
         ...
    },
    {
         "id": 1,
         "name": "...",
         "description": "...",
         "ect": "...",
         "ect": "...",
         ...
         ...
         ...
    }
]

所以看起来数据持续存在,我只是不确定在哪里。

【问题讨论】:

    标签: node.js angularjs postgresql heroku


    【解决方案1】:

    看起来您的代码执行了一个查询。然后它遍历结果,为每一行调用console.log

    所以看起来您的应用不会将结果存储在任何地方。它只是记录它们?

    如果您执行heroku logs --tail,您可能会看到它们飞过。

    顺便说一句,如果您确实打算在文件系统上存储内容,请小心。文件系统是ephemeral。因此,如果您想正确存储它,请使用支持服务(如数据库)。

    【讨论】:

    • 感谢您的回答。我认为您可能是对的,因为我的应用程序没有将结果存储在任何地方,但是,当我再次运行 node 命令时,之前添加的行仍然存在,这意味着它们存储在某个地方,只是我不确定在哪里。你知道我如何将这些结果存储在我选择的某个地方,最好是存储到我的 heroku 云数据库中。这就是我从一开始的意图,将我的应用程序连接到 Heroku PostgreSQL 数据库。
    • 使用数据库。你已经在做。查看行:client.query('INSERT INTO table ... 每次运行它,看起来它都会在表格中添加一行。
    • 你是说我已经连接到 Heroku PostgreSQL 数据库了?为什么我在 Heroku 的 Heroku 数据库中看不到它?如果我的数据库名称是“mydata”并且我单击它并在其中(postgres.heroku.com/databases/mydata)它不会显示其中的任何数据。这是否仍然意味着我已经连接到它?如果是这样,我如何查看我的数据?
    • 我还使用heroku logs -theroku logs -p postgres -t (devcenter.heroku.com/articles/…) 检查了我的日志,但我找不到任何关于我正在发送的数据的信息
    • 哦,我的错,我以为您实际上已连接到数据库。那是您正在使用的实际代码吗?你连接数据库的代码是什么?查看本指南的外观:devcenter.heroku.com/articles/…
    猜你喜欢
    • 2023-02-17
    • 1970-01-01
    • 2014-01-19
    • 1970-01-01
    • 2014-02-16
    • 2014-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多