Neo4j в мобильных службах Azure

Я пытался использовать базу данных Neo4j в качестве моей базы данных в службе Azure Mobile. Я следил за это руководство, и я не могу заставить его работать. В основном, что делает учебник, это:

  • Создает виртуальную машину, размещенную в Azure, под управлением Ubuntu и neo4j.
  • Создает мобильную службу Azure с таблицей SQL.
  • Пишет сценарий вставки для таблицы SQL, который использует node.js для подключения к виртуальной машине Neo4j и передачи туда данных.

К сожалению, мой, кажется, не работает. Данные отправляются в таблицу SQL для мобильных служб, но сценарий для отправки на сервер Neo4j на виртуальной машине, похоже, не работает. Я также знаю, что виртуальная машина настроена правильно, потому что я могу подключиться к ней на странице веб-администрирования Neo4j.

Вот код скрипта:

    function insert(item, user, request) {
    //comment to trigger .js creation
    var neo4j = require('neo4j');
    var db = new neo4j.GraphDatabase('http://<username>:<password>@http://neo4jmobile.cloudapp.net:7474');
    var node = db.createNode({ name: item.name });
    node.save(function (err, node) {
        if (err) {
            console.error('Error saving new node to database:', err);
        }
        else {
            console.log('Node saved to database with id:', node.id);
        }
    });

    request.execute();

}

Есть ли у кого-нибудь опыт в этом? Что-то не так с моим сценарием? С учебным подходом? Любая помощь будет оценена по достоинству.

РЕДАКТИРОВАТЬ: возникла проблема со строкой: console.err('Error saving new node to database:', err);, которую нужно было заменить на console.err('Error saving new node to database:', err);. Однако теперь я получаю это сообщение об ошибке:

Error saving new node to database: { [Error: connect ETIMEDOUT]
  stack: [Getter/Setter],
  code: 'ETIMEDOUT',
  errno: 'ETIMEDOUT',
  syscall: 'connect',
  __frame:
   { name: 'GraphDatabase_prototype__getRoot__1',
     line: 76,
     file: '\\\\10.211.156.195\\volume-0-default\\bf02c8bd8f7589d46ba1\\4906fa4587734dd087df8e641513f602\\site\\wwwroot\\App_Data\\config\\scripts\\node_modules\\neo4j\\lib\\GraphDatabase.js',
     prev:
      { name: 'GraphDatabase_prototype_getServices__2',
        line: 99,
        file: '\\\\10.211.156.195\\volume-0-default\\bf02c8bd8f7589d46ba1\\4906fa4587734dd087df8e641513f602\\site\\wwwroot\\App_Data\\config\\scripts\\node_modules\\neo4j\\lib\\GraphDatabase.js',
        prev: [Object],
        active: false,
        offset: 5,
        col: 12 },
     active: false,
     offset: 5,
     col: 12 },
  rawStack: [Getter] }

Еще раз, любая помощь будет оценена!


person James Allingham    schedule 24.01.2014    source источник
comment
Видите ли вы что-нибудь в журналах вашего мобильного сервиса?   -  person Chris    schedule 24.01.2014
comment
Ваш URL-адрес неверен. Должно быть: http://<username>:<password>@neo4jmobile.cloudapp.net:7474   -  person Michael Hunger    schedule 25.01.2014
comment
@MichaelHunger Я изменил URL-адрес, к сожалению, проблема была не в этом.   -  person James Allingham    schedule 27.01.2014
comment
@Chris Я новичок в лазурном, поэтому я даже не знал, что это было там. Спасибо за помощь. Я получаю эту ошибку: TypeError: Object [object Object] has no method 'err' at </table/person.insert.js>:17:25 at __$Node_prototype_save__1 Как вы думаете, вы можете мне помочь? :)   -  person James Allingham    schedule 27.01.2014
comment
@Chris Я решил эту проблему. Мне нужно было сказать console.error(), а не console.err(). Однако теперь у меня новая проблема. Я отредактировал исходный пост, чтобы показать его.   -  person James Allingham    schedule 27.01.2014
comment
Рад, что это сработало. Вы должны опубликовать свое решение в качестве ответа на этот вопрос и принять его, а если у вас есть новые вопросы, вы должны задать их отдельно.   -  person jjaderberg    schedule 27.01.2014
comment
@jjaderberg спасибо, я сделаю это.   -  person James Allingham    schedule 27.01.2014


Ответы (2)


Вы включили систему управления версиями и npm установили модуль neo4j?

Миранда

person Mlunes    schedule 26.01.2014
comment
Я сделал. В журналах появлялась ошибка Ошибка в сценарии '/table/person.insert.js'. Error: Cannot find module 'neo4j' [external code] at insert (</table/person.insert.js>:5:21) at </table/person.insert.js>:1:8 [external code], но это больше не проблема. Спасибо хоть. - person James Allingham; 27.01.2014

Хорошо, мне удалось это понять. Проблема заключалась в том, что в учебнике (и в документации по neo4j для node.js) была опечатка. Код должен был быть console.error(), а не console.err().

person James Allingham    schedule 27.01.2014