2017-01-05 9 views
1

Я был бы очень рад получить помощь по следующей теме, поскольку мне не удалось ее преодолеть. Моя цель - собрать некоторые данные на стороне сервера (пока я использую alasql для преобразования моего CSV-файла в таблицу sql), а затем передайте его как параметр на стороне клиента, чтобы выполнить другие операции sql на клиенте (опять же с alasql). До сих пор я suceeded вПередача таблицы sql, созданной с помощью alasql от Server (node.js) к клиенту (ejs)

  • преображают CSV файл в SQL таблицы благодаря alasql
  • Передача параметров со стороны сервера на стороне клиента

Но я не успел

  • Pass самой таблицы SQL со стороны сервера на сторону клиента в качестве параметра

Мой лучший результат в попытке сделать это

`input=[object Object],[object Object],...` 

вместо таблицы SQL я бы ожидать, что дает ошибку

Мой код на стороне сервера является следующее:

var express = require('express'); 
var session = require('cookie-session'); // Charge le middleware de sessions 
var bodyParser = require('body-parser'); // Charge le middleware de gestion  des paramètres 
var urlencodedParser = bodyParser.urlencoded({ extended: false }); 
var alasql=require('alasql'); 

var app = express(); 

var input=0; 

alasql('SELECT * FROM CSV("public/data/output.csv",{separator:";"})',[],function(data){ 
    input=data; 
    console.log(1) 
}); 

/* On utilise les sessions */ 
app.use(session({secret: 'TBC'})) 

/* S'il n'y a pas de todolist dans la session, on en crée une vide sous forme d'array avant la suite */ 
.use(function(req, res, next){ 
    next(); 
}) 

.use(express.static(__dirname + '/public')) 

/* On affiche la todolist et le formulaire */ 
.get('/segmentation_clients', function(req, res) { 
    console.log(input); 
    var Commercial='U.Morel'; 
    res.render('segmentation_clients.ejs', {Commercial:'U. Morel',input:input}); 
}) 

.listen(8080); 

начало кода JS на стороне клиента (segmentation_clients.ejs):

var Commercial="<%=Commercial%>"; 
var input= <%=input%>; 
console.log(input); 

Выходной код (ОК для #Commercial параметра, но не нормально для таблицы #INPUT SQL): enter image description here

Я очень ценю вашу помощь по этой теме

Большое спасибо Stéphane

ответ

0

я, наконец, получил решение:

  • на стороне сервера я заменил input:input

с

input:JSON.stringify(input) 
  • на стороне клиента, я заменил var input= <%=input%>;

с

var input= <%-input%>; 

Первая проблема была проблема формата (решена путем преобразования входного в формате JSON), а вторая проблема была abou т оценки данных внутри Arry с «-» вместо того, чтобы только чтение его «=», насколько я понял

Best Стефан