考虑到我没能完成以下主题,我很高兴能获得一些帮助。 我的目标是在服务器端收集一些数据(到目前为止我正在使用alasql将我的CSV fil转换为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);
客户端JS代码的开头(segmentation_clients.ejs):
var Commercial="<%=Commercial%>";
var input= <%=input%>;
console.log(input);
代码的输出(对于 #Commercial 参数可以,但对于 #input SQL 表不行): enter image description here
非常感谢您对此主题的帮助
非常感谢 史蒂芬
最佳答案
我终于找到了解决方案:
- 在服务器端,我替换了
input:input
与
input:JSON.stringify(input)
- 在客户端,我替换了
var input= <%=input%>;
与
var input= <%-input%>;
第一个问题是格式问题(通过将输入转换为 JSON 格式来解决),第二个问题是用“-”评估 arry 内的数据,而不是仅读取“=”,据我所知
最佳 史蒂芬
关于node.js - 将使用alasql创建的sql表从服务器(node.js)传递到客户端(ejs),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41490497/