Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将vanilla JS转换为与Nodejs、Mongo和Express一起使用_Javascript_Node.js_Mongodb_Express_Routes - Fatal编程技术网

Javascript 将vanilla JS转换为与Nodejs、Mongo和Express一起使用

Javascript 将vanilla JS转换为与Nodejs、Mongo和Express一起使用,javascript,node.js,mongodb,express,routes,Javascript,Node.js,Mongodb,Express,Routes,我正在为一个使用Nodejs、Mongo和Express的类编写博客项目。我们一直在努力使用Express。我有以前的JS代码为博客帖子创建幻灯片。我现在需要幻灯片来访问MongoDB中的数据,并将其发送到具有匹配标题的post.ejs文件(这样它就可以在数据库中找到它并在post.ejs文件中显示)。我不能使用幻灯片按钮,因为正如我前面提到的,在引入节点之前,它是使用的。如何将旧的vanilla JS转换为使用express并从Mongo DB提取数据?我靠自己学了很多东西,但现在我陷入了困境

我正在为一个使用Nodejs、Mongo和Express的类编写博客项目。我们一直在努力使用Express。我有以前的JS代码为博客帖子创建幻灯片。我现在需要幻灯片来访问MongoDB中的数据,并将其发送到具有匹配标题的post.ejs文件(这样它就可以在数据库中找到它并在post.ejs文件中显示)。我不能使用幻灯片按钮,因为正如我前面提到的,在引入节点之前,它是使用的。如何将旧的vanilla JS转换为使用express并从Mongo DB提取数据?我靠自己学了很多东西,但现在我陷入了困境

这里是我的GitHub存储库

旧的JS位于/public/assets/main.JS中

我的post控制器位于controllers/postController.js中

我的ajax jquery文件夹位于public/assets/jquery.js中


最后,我的index.ejs和post.ejs位于views文件夹中。

您可以修改您的vanilla JS文件并将其制作成ejs模板。使用与
post.ejs
相同的语法,以便访问传入的数据

在您的服务器上,您应该设置一个路由处理程序,例如
app.get(“/example”)
。在路由处理程序内部,您应该查询mongodb实例以获取所需的数据。现在,获取新修改的ejs文件并进行渲染,传入来自mongodb的查询结果。下面是一个例子:

app.get("/example", (req, res) => {
    const data = getDataFromMongo() // insert your query here
    res.render("main", data);
}
如果您希望您的客户机负责获取数据,那么请跳过将普通文件转换为ejs,您可以简单地将mongodb数据作为JSON返回,如下所示:

app.get("/example", (req, res) => {
    const data = getDataFromMongo() // insert your query here
    res.json(data);
}
现在在您的客户端代码中,向“/example”发出ajaxget请求,您可以使用返回的JSON。这里不需要ejs模板语法

因此,如何控制对数据的访问取决于您。第一种方法处理服务器端的一切。第二种方法在服务器和客户端之间划分责任。在这种情况下,服务器更像是一个数据API,而不是一个渲染引擎