将数据发送到前端expressjs

时间:2017-11-10 21:31:42

标签: javascript ajax express frontend backend

我使用Nodejs,expressjs,sqlite3。

我已经设法从使用expressjs的数据库和路由获取数据,这都在一个名为server.js的js文件中

现在我想发送/使用我在前端提取的数据。

我试图拥有一个全局变量并在其他js文件中使用该全局变量,但这并不起作用。经过一番研究,我大部分时间都看到了AJAX。我是否需要使用AJAX将数据从后端发送到前端?

这个想法是根据用户选择的产品更新前端。我在服务器js中获取了产品数据,我不知道如何将其发送到前端以填写表格并根据数据库中的数据更改产品名称。

另外,我应该继续看看在全局变量中保存/使用我的数据是否有效吗? 感谢。

3 个答案:

答案 0 :(得分:0)

您应该创建RESTful API来执行您想要的操作。这意味着您必须使用AJAX,并且无法使用全局变量。

答案 1 :(得分:0)

AJAX是一种从后端请求数据而不会触发整页重新加载的好方法。然而,它增加了一层复杂性,听起来并不像你需要的那样。由于您正在使用快递,因此可以访问可以为您处理此问题的templating engine开箱即用。

快速响应对象有一个render方法,您可以在其中指定要使用的模板以及要发送到模板的数据。一些伪代码:

// server.js
app.get('someroute',(req,res,next)=>{
    //get data from DB, returns promise
    return db.getData().then((data)=>{
        return res.render('myTableTemplate',data);
    });
});

在模板文件中,您将适当地使用JSON数据填充表。

如果您使用的是客户端JS库(react,vue,angular等),则可以跳过res.render(...)并简单地res.json(data)

答案 2 :(得分:0)

使用WebSocket

WebSocket可能是最好的选择:https://socket.io/

您只需从后端发出有效载荷