node.js - 将使用alasql创建的sql表从服务器(node.js)传递到客户端(ejs)

标签 node.js express ejs alasql

考虑到我没能完成以下主题,我很高兴能获得一些帮助。 我的目标是在服务器端收集一些数据(到目前为止我正在使用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/

相关文章:

node.js - 创建源插件时无法将数据保存在 gatsby graphql 层中

javascript - io.sockets.in(房间名称).on(我的事件)加入后不起作用

node.js - 使用 socket.io、node.js 和 mongodb 更新服务器端的 ejs 变量

javascript - 在 GET Ajax 请求之后,如何打开一个新窗口并呈现 EJS View ?

javascript - 我需要在 POST 请求后调用页面渲染

node.js - 我应该如何更改 NodeJS - Apache 设置才能获得所需的结果?

javascript - 如何将提交的表单数据发送到本地服务器

node.js - 使用 Model.find() 调用 MongoDB 时 KeystoneJS 中间件运行两次

javascript - 如何让我的 JavaScript 文件影响 EJS 变量

node.js - NextJS 和 React : Cannot read property 'email' of undefined