2016-03-10 3 views
0

Я новичок в Node.js и AngularJS и я сделал подключения к базе данных с помощью Node.js (код ниже)базы данных node.js к angularjs

var mysql  = require('mysql'); 
var connection = mysql.createConnection({ 
    host  : 'localhost', 
    user  : 'root', 
    password : '', 
    database : 'nodetest' 
}); 

connection.connect(); 

connection.query('SELECT * from testtable', function(err, rows, fields) { 
    if (!err) { 
     var test = rows; 
     console.log('The solution is: ', test); 
     return test; 
    } else{ 
     console.log('Error while performing Query.'); 
    } 
}); 

connection.end(); 

база данных состоит из 2-х таблиц (ID и имя) и имеет только 1 строку (1, «Luuk»)

мой код передается через Grunt для компиляции. при запуске сценария говорилось выше, это дает ожидаемый результат (The solution is: [ RowDataPacket { ID: 1, name: 'Luuk' } ])

, но когда я хочу, чтобы добавить это к контроллеру в angularjs, он не дает никаких результатов

app.controller('NameController', function() { 
    this.nameList = test; 
}); 

как бы исправить?

+0

Где вы ожидаете, что 'test' появится в вашем коде контроллера? –

ответ

0

Я думаю, что вы вводите в заблуждение понятия.

Angular.js и Node.js работают в ПОЛНОЙ РАЗЛИЧНОЙ среде. Node.js - это сервер, который выполняется локально на вашем компьютере, к которому вы можете получить доступ через браузер с URL-адресом localhost:3000. Но этот сервер может работать на другой машине, например, с которой вы сможете получить доступ через IP-адрес, например, 123.4.5.678:3000.

Чтобы обмениваться данными между backend и frontend, вы должны сделать это по запросу. Когда вы получаете доступ к локальному хосту через браузер, вы делаете запрос на сервер, а сервер предоставляет некоторый ответ, например, страницу HTML или что-то в этом роде.

Посмотрите этот пример на Nodejs Docs

http.createServer(function(request, response) { 
    response.writeHead(200, {'Content-Type': 'text/plain'}); 
    response.end('Hello World\n'); 
}).listen(3000); 

В ответ мы возвращаемся в обычный текст. Но это может быть json, с вашим поиском в базе данных.

И вы можете выполнить определенный маршрут, например /getTestTable, который вы можете позвонить в Угловое, с услугой $http и справиться с этим.

Я предлагаю лучше посмотреть, как работает Node.js, и Angular.js.

Вы также хотели бы взглянуть на Express.js, структуру для узла.

0

Проверьте область действия переменной - она ​​определена внутри функции обратного вызова connection.query. Попробуйте определить переменную 'test' глобально.

Смежные вопросы