1

鉴于我没有设法通过它,我很高兴在以下主题上获得一些帮助。我的目标是在服务器端收集一些数据(到目前为止,我正在使用 alasql 将我的 CSV 文件转换为 sql 表),然后将其作为参数传递给客户端,以在客户端执行其他 sql 操作(再次使用 alasql)。到目前为止,我成功了

  • 借助 alasql 将 CSV 文件转换为 sql 表
  • 将参数从服务器端传递到客户端

但我没能做到

  • 将sql表本身从Server端传递到Client端作为参数

我尝试这样做的最好结果是

`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);

Client端的JS代码开头(segmentation_clients.ejs):

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

代码输出(#Commercial 参数可以,但#input SQL 表不行): 在此处输入图像描述

非常感谢您对这个主题的帮助

非常感谢斯蒂芬

4

1 回答 1

0

我终于得到了解决方案:

  • 在服务器端,我更换了input:input

input:JSON.stringify(input)
  • 在客户端,我替换了var input= <%=input%>;

var input= <%-input%>;

第一个问题是格式问题(通过将输入转换为 JSON 格式来解决),第二个问题是关于使用“-”而不是仅读取“=”来评估数组中的数据,据我所知

最好的斯蒂芬

于 2017-01-09T13:50:11.583 回答